给我举一个用二叉搜索进行排序的c语言程序的例子
时间: 2024-03-17 15:43:06 浏览: 23
好的,以下是一个使用二叉搜索树进行排序的C语言程序,该程序将输入的一组整数按照从小到大的顺序排序:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int val;
struct node *left;
struct node *right;
} Node;
void insert(Node **root, int val);
void inorderTraversal(Node *root);
int main() {
int arr[] = {5, 2, 8, 3, 1, 9, 4, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
Node *root = NULL;
for (i = 0; i < n; i++) {
insert(&root, arr[i]);
}
printf("Sorted array: ");
inorderTraversal(root);
printf("\n");
return 0;
}
void insert(Node **root, int val) {
if (*root == NULL) {
*root = (Node*) malloc(sizeof(Node));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
} else if (val < (*root)->val) {
insert(&((*root)->left), val);
} else {
insert(&((*root)->right), val);
}
}
void inorderTraversal(Node *root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->val);
inorderTraversal(root->right);
}
}
```
这个程序中,我们定义了一个结构体 `Node` 来表示二叉搜索树的节点。在主函数中,我们声明了一个整数数组并将其插入到二叉搜索树中。在 `insert` 函数中,我们使用递归的方式向二叉搜索树中插入元素。在 `inorderTraversal` 函数中,我们使用中序遍历的方式输出二叉搜索树中的元素,从而得到排序后的结果。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)