二叉排序树查找的程序
时间: 2023-08-21 21:18:27 浏览: 106
好的,下面是一个简单的二叉排序树查找的程序:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 插入节点
void insert(TreeNode **root, int data) {
if (*root == NULL) {
*root = (TreeNode *) malloc(sizeof(TreeNode));
(*root)->data = data;
(*root)->left = NULL;
(*root)->right = NULL;
} else {
if (data < (*root)->data) {
insert(&(*root)->left, data);
} else {
insert(&(*root)->right, data);
}
}
}
// 中序遍历二叉排序树
void inorder(TreeNode *root) {
if (root != NULL) {
inorder(root->left);
printf("%d ", root->data);
inorder(root->right);
}
}
// 查找节点
TreeNode *search(TreeNode *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);
}
}
int main() {
TreeNode *root = NULL;
insert(&root, 5);
insert(&root, 3);
insert(&root, 7);
insert(&root, 1);
insert(&root, 9);
printf("中序遍历二叉排序树:");
inorder(root);
printf("\n");
int data = 7;
TreeNode *node = search(root, data);
if (node != NULL) {
printf("查找到节点 %d\n", node->data);
} else {
printf("未找到节点 %d\n", data);
}
return 0;
}
```
这段程序实现了二叉排序树的插入、中序遍历和查找功能。其中,`insert`函数用于插入节点,`inorder`函数用于中序遍历二叉排序树,`search`函数用于在二叉排序树中查找节点。在`main`函数中,我们先插入一些节点,并输出中序遍历结果。然后,我们查找值为7的节点,并输出查找结果。
阅读全文