输入10个不同整数,依次插入到一颗初始为空的二叉排序树中,并对其进行中序遍历,以验证树的正确性。用c语言实现。
时间: 2023-08-03 09:02:57 浏览: 62
中序遍历二叉排序树
下面是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
//定义二叉排序树的结点结构体
typedef struct TreeNode {
int data; //结点数据
struct TreeNode *left; //左子结点指针
struct TreeNode *right; //右子结点指针
} TreeNode;
//向二叉排序树中插入结点
void insert(TreeNode **root, int data) {
if (*root == NULL) { //如果为空树,直接插入
TreeNode *newNode = (TreeNode *) malloc(sizeof(TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
*root = newNode;
return;
}
if (data < (*root)->data) { //如果插入数据小于当前结点的数据,递归插入左子树
insert(&((*root)->left), data);
} else { //否则递归插入右子树
insert(&((*root)->right), data);
}
}
//中序遍历二叉排序树
void inorder(TreeNode *root) {
if (root == NULL) {
return;
}
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
int main() {
TreeNode *root = NULL; //初始化为空树
int data[10] = {5, 2, 7, 1, 9, 3, 6, 8, 4, 0}; //插入的数据
for (int i = 0; i < 10; i++) {
insert(&root, data[i]); //依次插入数据
}
inorder(root); //中序遍历树
return 0;
}
```
输出结果为:`0 1 2 3 4 5 6 7 8 9`,证明二叉排序树的构建和中序遍历正确。
阅读全文