在非空二叉排序树中求出指定关键字的结点的层次C语言完整代码自己输出
时间: 2024-02-26 22:58:47 浏览: 24
以下是求出指定关键字的结点的层次的 C 语言完整代码,其中 `main` 函数部分包含了自己输入的部分:
```c
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int key;
struct TreeNode *left;
struct TreeNode *right;
};
int find_node_level(struct TreeNode *root, int key) {
/*
* 在非空二叉排序树中查找指定关键字的结点,并返回其层次
*/
int level = 1;
struct TreeNode *node = root;
while (node != NULL) {
if (node->key == key) {
return level;
}
else if (node->key < key) {
node = node->right;
}
else {
node = node->left;
}
level++;
}
// 没有找到指定结点,返回 -1
return -1;
}
int main() {
// 创建二叉排序树
struct TreeNode *root = (struct TreeNode *) malloc(sizeof(struct TreeNode));
printf("请输入二叉排序树的根节点的值:");
scanf("%d", &root->key);
root->left = NULL;
root->right = NULL;
int key;
char choice;
do {
printf("请输入要插入的节点的值:");
scanf("%d", &key);
struct TreeNode *node = (struct TreeNode *) malloc(sizeof(struct TreeNode));
node->key = key;
node->left = NULL;
node->right = NULL;
struct TreeNode *p = root;
while (1) {
if (node->key <= p->key) {
if (p->left == NULL) {
p->left = node;
break;
}
else {
p = p->left;
}
}
else {
if (p->right == NULL) {
p->right = node;
break;
}
else {
p = p->right;
}
}
}
printf("是否继续插入节点?(Y/N)");
scanf(" %c", &choice);
} while (choice == 'Y' || choice == 'y');
// 查找指定结点的层次
printf("请输入要查找的结点的值:");
scanf("%d", &key);
int level = find_node_level(root, key);
if (level == -1) {
printf("二叉排序树中不存在值为 %d 的结点。\n", key);
}
else {
printf("值为 %d 的结点在二叉排序树中的层次为:%d\n", key, level);
}
return 0;
}
```
在此示例代码中,我们先让用户输入二叉排序树的根节点的值,然后让用户不断输入要插入的结点的值,直到用户不再需要插入结点。之后,我们让用户输入要查找的结点的值,并在二叉排序树中查找该结点的层次。如果找到了指定结点,则输出其层次;否则,输出未找到指定结点的提示信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)