请给我一个c的二叉树创建
时间: 2023-03-19 07:21:27 浏览: 87
以下是一个基本的 C 语言实现的二叉树创建代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点结构体
struct node {
int data;
struct node *left;
struct node *right;
};
// 创建新的结点
struct node *newNode(int data) {
struct node *node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 递归创建二叉树
struct node *createTree() {
int data;
struct node *tree;
printf("输入结点的值(输入 -1 表示结点为空): ");
scanf("%d", &data);
if (data == -1) {
return NULL;
} else {
tree = newNode(data);
printf("输入 %d 的左子结点:\n", data);
tree->left = createTree();
printf("输入 %d 的右子结点:\n", data);
tree->right = createTree();
return tree;
}
}
// 递归遍历二叉树
void traverseTree(struct node *tree) {
if (tree) {
traverseTree(tree->left);
printf("%d ", tree->data);
traverseTree(tree->right);
}
}
// 主函数
int main() {
struct node *root;
root = createTree();
printf("遍历二叉树结果为:");
traverseTree(root);
printf("\n");
return 0;
}
```
该代码创建一个包含整数的二叉树,并使用先序遍历方法遍历该树。用户输入每个节点的值以及左右子节点的值。-1 用于表示该节点为空。