用c语言写创建一个二叉树,给出代码
时间: 2024-01-27 22:06:13 浏览: 70
下面是一个简单的用C语言实现二叉树的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct node {
int data;
struct node *left;
struct node *right;
} Node;
// 创建新节点
Node* newNode(int data) {
Node* node = (Node*) malloc(sizeof(Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
// 插入节点
Node* insert(Node* node, int data) {
if (node == NULL) {
return(newNode(data));
} else {
if (data <= node->data) {
node->left = insert(node->left, data);
} else {
node->right = insert(node->right, data);
}
return(node);
}
}
// 遍历二叉树(中序遍历)
void inorder(Node* node) {
if (node != NULL) {
inorder(node->left);
printf("%d ", node->data);
inorder(node->right);
}
}
// 主函数
int main() {
Node *root = NULL;
root = insert(root, 7);
insert(root, 3);
insert(root, 9);
insert(root, 5);
insert(root, 1);
insert(root, 12);
insert(root, 2);
printf("中序遍历结果:");
inorder(root);
return 0;
}
```
这个代码中,我们首先定义了一个二叉树结构体 `Node`,包含一个整数类型的数据 `data` 和左右子节点的指针 `left` 和 `right`。然后,我们实现了创建新节点的函数 `newNode()`,以及插入节点的函数 `insert()`。最后,我们实现了遍历二叉树的函数 `inorder()`,通过中序遍历的方式输出节点数据。在主函数中,我们按照顺序插入了一些节点,并对整个二叉树进行了中序遍历,输出结果为 `1 2 3 5 7 9 12`。
阅读全文