C语言编程题 1. 二叉排序树 【问题描述】 以括号形式输入一棵二叉排序树,从键盘输入待查找的元素,并输出元素比较路径。 【输入形式】 从键盘输入一系列数据元素值,以-1作为结束。 输入待查找的元素值。 【输出形式】 以括号形式输出每插入一个数据之和的二叉排序树 输出查找路径 【样例输入】 4 10 0 1 8 6 3 5 3 7 -1 9 【样例输出 //依次以括号形式输出每插入一个数据之和的二叉排序树 4 4(,10) 4(0,10) 4(0(,1),10) 4(0(,1),10(8,)) 4(0(,1),10(8(6,),)) 4(0(,1(,3)),10(8(6,),)) 4(0(,1(,3)),10(8(6(5,),),)) 4(0(,1(,3)),10(8(6(5,),),)) 4(0(,1(,3)),10(8(6(5,7),),)) 4 10 8 //这一行是查找路径
时间: 2023-08-31 20:13:31 浏览: 43
以下是C语言的二叉排序树的代码实现,包括插入节点和查找节点的功能。
```
#include <stdio.h>
#include <stdlib.h>
// 定义二叉排序树的结构体
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 插入节点
void insertNode(TreeNode **root, int val) {
if (*root == NULL) {
*root = (TreeNode *)malloc(sizeof(TreeNode));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
printf("%d", val);
return;
}
if (val < (*root)->val) {
insertNode(&((*root)->left), val);
} else {
insertNode(&((*root)->right), val);
}
return;
}
// 查找节点
TreeNode *findNode(TreeNode *root, int val) {
if (root == NULL || root->val == val) {
return root;
}
if (val < root->val) {
return findNode(root->left, val);
} else {
return findNode(root->right, val);
}
}
// 输出路径
void outputPath(TreeNode *root, int val) {
if (root == NULL || root->val == val) {
printf("%d ", root->val);
return;
}
printf("%d ", root->val);
if (val < root->val) {
outputPath(root->left, val);
} else {
outputPath(root->right, val);
}
return;
}
int main() {
int val;
TreeNode *root = NULL;
// 输入数据
while (scanf("%d", &val) && val != -1) {
insertNode(&root, val);
printf("(");
outputPath(root, val);
printf(")\n");
}
// 查找节点
scanf("%d", &val);
printf("\n");
outputPath(root, val);
printf("\n");
return 0;
}
```
运行程序后,输入一系列数据元素值以构建二叉排序树,以-1作为结束标志。然后输入待查找的元素值。程序会依次输出插入每个节点后的二叉排序树,以及查找节点时的比较路径。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)