用c语言输入结点,创建二叉排序树
时间: 2024-04-29 21:24:57 浏览: 5
回答:您可以使用以下代码来输入结点,创建二叉排序树:
```
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node* left;
struct node* right;
};
struct node* createNode(int data) {
struct node* newNode = (struct node*)malloc(sizeof(struct node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
void insert(struct node** root, int data) {
if (*root == NULL) {
*root = createNode(data);
return;
}
if (data < (*root)->data) {
insert(&(*root)->left, data);
} else {
insert(&(*root)->right, data);
}
}
void inorderTraversal(struct node* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
int main() {
struct node* root = NULL;
int data;
printf("请输入结点的数值,输入-1结束:\n");
while (1) {
scanf("%d", &data);
if (data == -1) {
break;
}
insert(&root, data);
}
printf("二叉排序树的中序遍历结果为:\n");
inorderTraversal(root);
return 0;
}
```
希望这能帮到您。