构造二叉检索树本题目构造一棵二叉检索树。要求读入n个整数,以0结束。最后输出这棵树的先序序列。用c语言实现
时间: 2023-12-21 07:04:42 浏览: 25
下面是C语言实现构造二叉搜索树并输出先序遍历的代码。
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
void insert(TreeNode** root, int val) {
if (*root == NULL) {
*root = (TreeNode*)malloc(sizeof(TreeNode));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
return;
}
if (val < (*root)->val) {
insert(&((*root)->left), val);
} else {
insert(&((*root)->right), val);
}
}
void preorder(TreeNode* root) {
if (root == NULL) {
return;
}
printf("%d ", root->val);
preorder(root->left);
preorder(root->right);
}
int main() {
TreeNode* root = NULL;
int val;
scanf("%d", &val);
while (val != 0) {
insert(&root, val);
scanf("%d", &val);
}
preorder(root);
return 0;
}
```
输入格式:多个整数,以0结束,每个整数占一行。
输出格式:树的先序遍历序列,每个整数占一行。