用C语言编写程序建立一个二叉排序树,并用广义表显示二叉排序树。
时间: 2024-06-22 13:03:51 浏览: 95
基于C语言二叉排序树的创建
在C语言中,我们可以使用结构体和指针来创建二叉排序树。二叉排序树是一种特殊的二叉树,其中每个节点的值都大于其左子树中的所有节点值,小于其右子树中的所有节点值。以下是创建二叉排序树的基本步骤:
1. 定义二叉树节点结构体:
```c
typedef struct TreeNode {
int data; // 节点数据
struct TreeNode* left; // 左子节点
struct TreeNode* right; // 右子节点
} Node;
```
2. 创建一个函数来插入新节点并保持排序:
```c
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 {
root->right = insert(root->right, value);
}
return root;
}
```
3. 创建一个函数来遍历二叉树并打印广义表(递归或迭代方式,这里以递归为例):
```c
void printInorder(Node* root, void (*print)(void*)) {
if (root != NULL) {
printInorder(root->left, print);
print(); // 打印当前节点
printInorder(root->right, print);
}
}
void printListNode(void) {
printf("%d ", ((Node*)NULL)->data); // 假设广义表的每个元素都是一个整数
}
```
你可以结合上述代码,首先创建一个空的根节点,然后用`insert`函数插入元素,最后调用`printInorder`函数配合`printListNode`来打印广义表形式的二叉排序树。
阅读全文