输入10个不同整数,依次插入到一颗初始为空的二叉排序树中,并对其进行中序遍历,以验证树的正确性。c语言
时间: 2023-12-10 17:38:23 浏览: 56
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉排序树的结点
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 向二叉排序树中插入结点
void insert(TreeNode** root, int val) {
if (*root == NULL) {
// 如果树为空,则新建一个结点作为根结点
*root = (TreeNode*)malloc(sizeof(TreeNode));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
} else {
if (val < (*root)->val) {
// 如果插入值比当前结点小,则插入到左子树中
insert(&((*root)->left), val);
} else {
// 否则插入到右子树中
insert(&((*root)->right), val);
}
}
}
// 中序遍历二叉排序树
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->val);
inorderTraversal(root->right);
}
}
int main() {
// 初始化一个空树
TreeNode* root = NULL;
// 依次插入10个不同的整数
int nums[10] = { 5, 2, 7, 1, 9, 3, 6, 8, 4, 0 };
for (int i = 0; i < 10; i++) {
insert(&root, nums[i]);
}
// 输出中序遍历结果,验证树的正确性
inorderTraversal(root);
printf("\n");
return 0;
}
```
输出结果为:`0 1 2 3 4 5 6 7 8 9`,说明树的构建和中序遍历都正确。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)