#include<stdio.h> //Binary Search Tree
#include<stdlib.h>
typedef struct node
{
int data;
struct node *left, *right;
}BST;
BST *insert(BST *T, int key) //Insert
{
if (!T)
{
T = (BST *)malloc(sizeof(BST));
T->data = key;
T->left = T->right = NULL;
return T;
}
if (T->data == key) return T;
if (T->data > key) T->left = insert(T->left, key);
else T->right = insert(T->right, key);
return T;
}
BST *create() //Create
{
BST *T;
int key;
char c;
T = NULL;
do
{
scanf("%d", &key);
T = insert(T, key);
c = getchar();
} while (c == ' ');
return T;
}
void preorder(BST *T) //Preorder Traversal
{
if (!T) return;
printf("%d ", T->data);
preorder(T->left);
preorder(T->right);
}
int main()
{
BST *T;
T = create();
preorder(T);
printf("\n");
return 0;
}
DSOJ BST(二叉搜索树)
最新推荐文章于 2023-04-26 17:52:18 发布