|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入n个整数,从空开始建立一棵二叉排序树,每输入一个整数x,判断该数是否在该二叉排序树中,如果不在,则加入到二叉排序树中。
测试数据
8
10 18 3 8 12 2 7 4
样例输出
2 3 4 7 8 10 12 18
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int KeyType;
typedef struct ElemType
{
int key;
} ElemType;
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
Status SearchBST(BiTree T,KeyType key,BiTree f,BiTree &p)
{
////////////////////////////////////////////////////////////////////
}
void InsertBST(BiTree &T,ElemType e)
{
BiTree s;
if (T==NULL)
{
s=(BiTree)malloc(sizeof(BiTree));
s->data=e;
s->lchild=NULL;
s->rchild=NULL;
T=s;
}
else if(T->data.key>e.key) InsertBST(T->lchild,e);
else if(T->data.key<e.key) InsertBST(T->rchild,e);
}
void create_bsttree(BiTree &bt)
{
int i,n;
ElemType e;
bt=NULL;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&e.key);
InsertBST(bt,e) ;
}
}
void visit(ElemType e)
{
printf("%d ",e.key);
}
void inorder(BiTree bt)
{
if (bt)
{
inorder(bt->lchild);
visit(bt->data);
inorder(bt->rchild);
}
}
int main(void) {
BiTree bt;
create_bsttree(bt);
inorder(bt);
return 0;
} |
|