我需要一个最简便的二叉排序树算法代码,用c语言编写
时间: 2024-03-09 11:49:52 浏览: 19
以下是一个简单的二叉排序树的代码,用C语言实现:
```
#include <stdio.h>
#include <stdlib.h>
// 定义二叉排序树的结点
typedef struct node {
int data;
struct node *left;
struct node *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);
}
}
// 测试
int main() {
TreeNode *root = NULL;
insert(&root, 5);
insert(&root, 4);
insert(&root, 7);
insert(&root, 2);
insert(&root, 8);
insert(&root, 6);
inorder(root);
return 0;
}
```
这个代码实现了二叉排序树的插入和中序遍历操作。在主函数中,我们首先创建一个空树,然后依次插入6个结点,最后进行中序遍历输出结果。