直接上代码
//BST树
#include <stdio.h>
#include <stdlib.h>
typedef int Elemtype;
typedef struct LNode{
struct LNode *Lchild;
struct LNode *Rchild;
Elemtype data;
}LNode;
void create(LNode *l)
{
int key;
scanf("%d",&key);
l->data = key;
l->Lchild = NULL;
l->Rchild = NULL;
}
void init(LNode *l)
{
int key;
scanf("%d",&key);
LNode *p,*q;
p = l;
int flag;
while(p != NULL)
{
q = p;
if(key > p->data)
{
p = p->Rchild;
flag = 0;
}
else
{
p = p->Lchild;
flag = 1;
}
}
p = (LNode*)malloc(sizeof(LNode));
p->data = key;
p->Lchild = NULL;
p->Rchild = NULL;
if(flag == 1)
q->Lchild = p;
else
q->Rchild = p;
}
void print(LNode *l)
{
if(l != NULL)
{
printf("%d ",l->data);
print(l->Lchild);
print(l->Rchild);
}
}
int main() {
LNode l;
printf("请输入根节点的值:\n");
create(&l);
printf("请输入你要插入的元素个数:\n");
int n ;
scanf("%d",&n);
for(int i = 0;i < n;i++)
{
init(&l);
}
print(&l);
return 0;
}