建立一棵含有n个结点的二叉树,并采用二叉链表存储 C语言
时间: 2024-05-10 18:15:37 浏览: 37
以下是建立二叉树的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
struct TreeNode* createNode(int val) {
struct TreeNode* node = (struct TreeNode*) malloc(sizeof(struct TreeNode));
node->val = val;
node->left = NULL;
node->right = NULL;
return node;
}
struct TreeNode* createTree() {
int val;
printf("Enter the root node value (or -1 to terminate): ");
scanf("%d", &val);
if (val == -1) {
return NULL;
}
struct TreeNode* root = createNode(val);
printf("Enter the left child of %d:\n", val);
root->left = createTree();
printf("Enter the right child of %d:\n", val);
root->right = createTree();
return root;
}
int main() {
struct TreeNode* root = createTree();
return 0;
}
```
这里使用了二叉树节点的结构体来表示节点,其中包括节点值、左子节点和右子节点。`createNode` 函数用来创建一个节点,`createTree` 函数用来递归地创建一棵二叉树。在 `createTree` 函数中,首先读入根节点的值,如果值为 -1,表示该子树为空,返回 NULL。否则,创建一个节点,然后递归地创建左子树和右子树,并将它们连接到根节点上。
在主函数中,调用 `createTree` 函数创建一棵二叉树。可以根据需要对二叉树进行遍历等操作。