69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{
long data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//实现搜索
int Search(BiTree &T,BiTree &f,BiTree &p,long d)
{
if(!T)
{
p=f;return 0;
}
else if(d==T->data)
{
p=T;return 1;
}
else if(d<T->data)
{
return Search(T->lchild,T,p,d);
}
else
{
return Search(T->rchild,T,p,d);
}
}
//实现插入
int Insert(BiTree &T,long e)
{
BiTNode *f,*p,*s;
s=new BiTNode;
if(!s)return 0;
s->data=e;
s->lchild=s->rchild=NULL;
if(!(Search(T,f,p,e)))
{
if(e<p->data)
{
p->lchild=s;
return 1;
}
else
{p->rchild=s;
return 1;
}
}
else
return 0;
}
void Inorder(BiTree T)
{
if(!T) return;
Inorder(T->lchild);
printf("%d ",T->data);
Inorder(T->rchild);
}
void CreatT(BiTree &T,BiTree &w)
{
long e;
T=new BiTNode;
w=T;
scanf("%d",&e);
T->data=e;
T->lchild=T->rchild=NULL;
scanf("%d",&e);
while(e!=-1){
Insert(T,e);
scanf("%d",&e);
}
}
void main()
{
BiTree T=0;
BiTNode *w;
printf("请输入数据,以-1结束:\n");
CreatT(T,w);
printf("输出中序遍历结果为:\n");
Inorder(w);
printf("\n");
}