c语言二叉树初始化代码
时间: 2024-11-25 20:09:18 浏览: 63
在C语言中,初始化二叉树通常涉及到结构体来表示节点,并使用链表的方式构建树。这里是一个简单的例子,首先定义一个二叉树节点结构:
```c
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左孩子指针
struct TreeNode* right; // 右孩子指针
} TreeNode;
```
然后,你可以通过循环或者递归的方式来创建一个空的根节点作为树的起点,如为空树:
```c
TreeNode* initBinaryTree() {
return NULL;
}
```
如果你想初始化一个带有一个或多个元素的非空树,可以手动创建节点并链接它们:
```c
TreeNode* createNode(int val) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
if (!newNode) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->val = val;
newNode->left = newNode->right = NULL;
return newNode;
}
TreeNode* initBinaryTreeWithValues(int arr[], int n) {
if (n == 0) return NULL;
TreeNode* root = createNode(arr[0]);
if (!root) return NULL;
for (int i = 1; i < n; i++) {
insertIntoBinaryTree(root, arr[i]);
}
return root;
}
// 插入函数用于递归添加节点
void insertIntoBinaryTree(TreeNode* node, int val) {
if (val < node->val)
node->left = insertIntoBinaryTree(node->left, val);
else if (val > node->val)
node->right = insertIntoBinaryTree(node->right, val);
else
printf("Value already exists in the tree.\n");
}
```
在这个例子中,`initBinaryTreeWithValues`函数接收一个整数数组,创建一个包含这些值的二叉搜索树。
阅读全文
相关推荐


















