任意输入一组数据作为二叉排序树中结点的键值,创建一棵二叉排序树,然后对给定的值进行查找并给出其在二叉树中所在的位置。 用c语言
时间: 2024-03-23 14:36:59 浏览: 27
好的,以下是创建二叉排序树并查找给定值并输出其所在位置的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 二叉排序树结点的定义
typedef struct BSTNode {
int data; // 关键字
struct BSTNode *left; // 左子树
struct BSTNode *right; // 右子树
} BSTNode, *BSTree;
// 创建一棵二叉排序树
void createBSTree(BSTree *T, int key) {
if (!(*T)) { // 若二叉排序树为空,则新建一个结点
(*T) = (BSTree) malloc(sizeof(BSTNode));
(*T)->data = key;
(*T)->left = (*T)->right = NULL;
} else if (key < (*T)->data) { // 插入到左子树
createBSTree(&((*T)->left), key);
} else if (key > (*T)->data) { // 插入到右子树
createBSTree(&((*T)->right), key);
}
}
// 在二叉排序树中查找给定值并输出其所在位置
void searchBSTree(BSTree T, int key, int depth) {
if (!T) { // 若二叉排序树为空,则查找失败
printf("查找失败,该值不在二叉排序树中。\n");
} else if (key == T->data) { // 若查找到了,则输出位置
printf("查找成功,该值在二叉排序树的第 %d 层。\n", depth);
} else if (key < T->data) { // 在左子树中查找
searchBSTree(T->left, key, depth + 1);
} else { // 在右子树中查找
searchBSTree(T->right, key, depth + 1);
}
}
int main() {
BSTree T = NULL; // 初始化二叉排序树
int n, key;
printf("请输入数据个数:");
scanf("%d", &n);
printf("请输入数据:");
for (int i = 0; i < n; i++) {
scanf("%d", &key);
createBSTree(&T, key); // 将数据插入到二叉排序树中
}
printf("请输入要查找的值:");
scanf("%d", &key);
searchBSTree(T, key, 1); // 查找给定值并输出其所在位置
return 0;
}
```
运行程序后,按照提示输入数据个数和数据,然后输入要查找的值,就可以得到查找结果及其所在位置。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)