写一段c语言代码插入3, 1, 4, 6, 9, 2, 5, 7,6,10 到一棵空树
时间: 2023-09-30 14:10:56 浏览: 39
好的,以下是插入操作的代码:
```
#include<stdio.h>
#include<stdlib.h>
typedef struct Node {
int val;
struct Node* left;
struct Node* right;
} Node;
Node* createNode(int val) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->val = val;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
Node* insert(Node* root, int val) {
if (root == NULL) {
return createNode(val);
}
if (val < root->val) {
root->left = insert(root->left, val);
} else {
root->right = insert(root->right, val);
}
return root;
}
Node* createTree(int arr[], int n) {
Node* root = NULL;
for (int i = 0; i < n; i++) {
root = insert(root, arr[i]);
}
return root;
}
void inorderTraversal(Node* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
printf("%d ", root->val);
inorderTraversal(root->right);
}
int main() {
int arr[] = {3, 1, 4, 6, 9, 2, 5, 7, 6, 10};
int n = sizeof(arr) / sizeof(int);
Node* root = createTree(arr, n);
inorderTraversal(root);
return 0;
}
```
这段代码使用二叉搜索树实现了从小到大排序。我们先定义了一个结构体表示树的节点,包含值以及左右子树的指针。然后实现了一个创建节点的函数,一个插入函数,一个创建树的函数。最后,我们以中序遍历的方式打印出排序后的结果。