二叉树查找的c语言代码
时间: 2023-11-14 15:44:15 浏览: 105
当然,下面是一个简单的二叉树查找的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 二叉树节点结构
struct Node {
int data;
struct Node *left;
struct Node *right;
};
// 创建一个新的节点
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
if (newNode == NULL) {
printf("内存分配失败!\n");
exit(1);
}
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 在二叉搜索树中插入一个新节点
struct Node* insertNode(struct Node* node, int data) {
if (node == NULL) {
return createNode(data);
}
if (data < node->data) {
node->left = insertNode(node->left, data);
} else if (data > node->data) {
node->right = insertNode(node->right, data);
}
return node;
}
// 在二叉搜索树中查找指定值的节点
struct Node* searchNode(struct Node* root, int data) {
if (root == NULL || root->data == data) {
return root;
}
if (data < root->data) {
return searchNode(root->left, data);
}
return searchNode(root->right, data);
}
int main() {
struct Node* root = NULL;
struct Node* temp = NULL;
// 插入节点
root = insertNode(root, 50);
insertNode(root, 30);
insertNode(root, 20);
insertNode(root, 40);
insertNode(root, 70);
insertNode(root, 60);
insertNode(root, 80);
// 查找节点
temp = searchNode(root, 40);
if (temp != NULL) {
printf("找到节点:%d\n", temp->data);
} else {
printf("未找到节点!\n");
}
return 0;
}
```
这段代码实现了二叉搜索树的创建、插入和查找操作。你可以根据需要修改和扩展它来满足特定的需求。希望对你有所帮助!
阅读全文