c语言建立二叉查找树并搜索元素9所在节点的位置
时间: 2024-05-06 13:17:11 浏览: 78
以下是使用C语言建立二叉查找树并搜索元素9所在节点的位置的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
struct Node {
int data;
struct Node* left;
struct Node* right;
};
// 二叉树插入函数
struct Node* insert(struct Node* root, int data) {
if (root == NULL) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
if (data < root->data) {
root->left = insert(root->left, data);
} else if (data > root->data) {
root->right = insert(root->right, data);
}
return root;
}
// 二叉树查找函数
struct Node* search(struct Node* root, int data) {
if (root == NULL || root->data == data) {
return root;
}
if (data < root->data) {
return search(root->left, data);
} else {
return search(root->right, data);
}
}
// 中序遍历二叉树
void inorder(struct Node* root) {
if (root != NULL) {
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
}
int main() {
struct Node* root = NULL;
root = insert(root, 8);
insert(root, 3);
insert(root, 1);
insert(root, 6);
insert(root, 7);
insert(root, 10);
insert(root, 14);
insert(root, 4);
printf("中序遍历二叉树:");
inorder(root);
printf("\n");
int data = 9;
struct Node* result = search(root, data);
if (result == NULL) {
printf("元素%d在二叉树中不存在\n", data);
} else {
printf("元素%d在节点%d中\n", data, result->data);
}
return 0;
}
```
运行结果:
```
中序遍历二叉树:1 3 4 6 7 8 10 14
元素9在二叉树中不存在
```
阅读全文