数据结构用c语言实现二叉树程序
时间: 2024-12-10 12:52:17 浏览: 13
数据结构:二叉树层次遍历算法解析及C语言实现
在C语言中,二叉树是一种常见的数据结构,用于组织元素,并通过每个节点最多有两个子节点(左孩子和右孩子)来进行查找、插入和删除操作。以下是简单的二叉搜索树(BST)的实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点
typedef struct TreeNode {
int data;
struct TreeNode* left; // 左子树指针
struct TreeNode* right; // 右子树指针
} Node;
// 插入新节点
Node* insert(Node* root, int value) {
if (root == NULL) {
return (Node*)malloc(sizeof(Node));
}
if (value < root->data)
root->left = insert(root->left, value);
else if (value > root->data)
root->right = insert(root->right, value);
return root;
}
// 搜索和返回值
int search(Node* root, int value) {
if (root == NULL || root->data == value)
return root ? root->data : -1; // 如果找到返回值,否则返回-1
if (value < root->data)
return search(root->left, value);
return search(root->right, value);
}
// 其他功能如删除节点等可以按类似模式扩展
int main() {
Node* root = NULL;
root = insert(root, 50);
insert(root, 30);
insert(root, 20);
insert(root, 40);
insert(root, 70);
insert(root, 60);
insert(root, 80);
printf("Search for 40: %d\n", search(root, 40)); // 返回40
printf("Search for 90: %d\n", search(root, 90)); // 返回-1(未找到)
return 0;
}
```
这个程序首先创建了一个空的根节点,然后通过`insert()`函数添加元素。`search()`函数则用于查找特定值。这是一个基本示例,实际应用中可能需要处理更复杂的节点管理。
阅读全文