用c语言编写一段代码,输入十个不同整数,依次插入到一棵初始为空的二叉排序树中,并对其进行中序遍历,以验证树的正确性
时间: 2023-12-06 15:45:14 浏览: 72
以下是用 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 if (data > root->data) {
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() {
int i;
int arr[10] = {7, 2, 9, 1, 5, 8, 10, 3, 6, 4};
struct node* root = NULL;
// 插入十个不同整数
for (i = 0; i < 10; i++) {
root = insert_node(root, arr[i]);
}
// 中序遍历验证树的正确性
printf("中序遍历结果:\n");
inorder_traversal(root);
return 0;
}
```
运行上述代码,将输出以下中序遍历结果:
```
中序遍历结果:
1 2 3 4 5 6 7 8 9 10
```
可以看到,这是一个正确的排序二叉树。
阅读全文