孩子兄弟表示法构建二叉树代码
时间: 2023-07-09 11:41:18 浏览: 67
孩子兄弟表示法是一种二叉树的存储方式,可以通过一个结构体来实现。下面是一个简单的示例代码:
```
struct TreeNode {
int val;
TreeNode* leftChild;
TreeNode* rightSibling;
TreeNode(int x) : val(x), leftChild(NULL), rightSibling(NULL) {}
};
TreeNode* buildTree() {
int val;
cout << "输入节点的值(-1表示空节点):" << endl;
cin >> val;
if (val == -1) {
return nullptr;
}
TreeNode* newNode = new TreeNode(val);
cout << "输入节点 " << val << " 的第一个子节点:" << endl;
newNode->leftChild = buildTree();
cout << "输入节点 " << val << " 的下一个兄弟节点:" << endl;
newNode->rightSibling = buildTree();
return newNode;
}
```
在这个示例代码中,我们定义了一个结构体TreeNode,包含节点的值、左孩子节点指针和右兄弟节点指针。其中左孩子节点指针指向该节点的左子树根节点,右兄弟节点指针则指向该节点的右侧兄弟节点。
buildTree函数与前面介绍的二叉树的构建方式类似,也是递归地构建一棵二叉树。不同之处在于,每个节点的左孩子节点指针指向其左子树的根节点,右兄弟节点指针指向它的兄弟节点的根节点。这样就可以用一个结构体来表示整棵二叉树了。
需要注意的是,孩子兄弟表示法在操作二叉树时需要手动管理内存,因为每个节点的指针需要手动创建和释放。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)