求大神帮我理解这个程序

wangxuewan123 2013-05-24 03:18:40
#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");

}
...全文
18 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧