二叉树的链式存储初始化一棵树
时间: 2023-11-14 19:21:15 浏览: 55
二叉树的链式存储使用指针来表示树的结构,每个节点包括一个数据域和两个指针域,分别指向左子树和右子树。初始化一棵树需要创建根节点,并为根节点分配空间,然后递归地创建左子树和右子树。
下面是一个示例代码来初始化一棵二叉树:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 创建一个新节点
TreeNode* createNode(int val) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->data = val;
node->left = NULL;
node->right = NULL;
return node;
}
// 初始化一棵树
TreeNode* initTree() {
TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
root->right->left = createNode(6);
root->right->right = createNode(7);
return root;
}
int main() {
TreeNode* root = initTree();
printf("根节点的数据为:%d\n", root->data);
printf("左子树的根节点数据为:%d\n", root->left->data);
printf("右子树的根节点数据为:%d\n", root->right->data);
return 0;
}
```
在上面的代码中,我们创建了一个名为 TreeNode 的结构体来表示二叉树的节点,其中包括一个数据域和两个指针域。createNode() 函数用来创建一个新节点,initTree() 函数用来初始化一棵树。在 main() 函数中,我们调用 initTree() 函数来初始化一棵树,并打印出根节点、左子树的根节点和右子树的根节点的数据。
相关推荐
![](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)
![](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)