建立二叉树的代码c语言并输出
时间: 2023-06-25 07:06:38 浏览: 93
以下是一个简单的 C 语言程序,用于建立一棵二叉树并输出。
```c
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *left;
struct node *right;
};
struct node *create_node(int data) {
struct node *new_node = (struct node*)malloc(sizeof(struct node));
new_node->data = data;
new_node->left = NULL;
new_node->right = NULL;
return new_node;
}
struct node *insert_node(struct node *root, int data) {
if (root == NULL) {
return create_node(data);
}
if (data < root->data) {
root->left = insert_node(root->left, data);
} else {
root->right = insert_node(root->right, data);
}
return root;
}
void inorder_traversal(struct node *root) {
if (root != NULL) {
inorder_traversal(root->left);
printf("%d ", root->data);
inorder_traversal(root->right);
}
}
int main() {
struct node *root = NULL;
root = insert_node(root, 5);
insert_node(root, 3);
insert_node(root, 7);
insert_node(root, 1);
insert_node(root, 9);
printf("Inorder traversal of the binary tree is: ");
inorder_traversal(root);
return 0;
}
```
这个程序创建了一个结构体 `node` 来表示二叉树的节点,其中包含数据、左子树和右子树的指针。`create_node()` 函数用于创建一个新节点,`insert_node()` 函数用于将新节点插入到树中,`inorder_traversal()` 函数用于遍历树并输出数据。
在 `main()` 函数中,程序首先创建一个空树 `root`,然后插入一些数据,最后调用 `inorder_traversal()` 函数来遍历树并输出数据。输出结果应该是:1 3 5 7 9。
阅读全文