主题:关于二叉树
Ryanxiaohai
[专家分:20] 发布于 2006-04-02 20:00:00
我现在还不知道二叉树的遍历是什么意思?
书上讲得很不清楚!!那位能否讲得易懂一点
回复列表 (共3个回复)
沙发
rickone [专家分:15390] 发布于 2006-04-02 20:03:00
就是对二叉树的所有结点全部访问一遍,按访问的顺序会生成不同的序列。
板凳
冷月星光 [专家分:16520] 发布于 2006-04-03 12:48:00
就是把二叉树的各个节点都走一遍,有前序,后序,中序和后序之分.
3 楼
冷月星光 [专家分:16520] 发布于 2006-04-03 12:49:00
#include<stdio.h>
#include<malloc.h>
#define NULL 0;
typedef char elemtype;
typedef struct bitnode
{
char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
void creatree(bitree *s)
{
char xt;
bitree t;
scanf("%c",&xt);
if(xt=='#') *s=NULL
else
{
t=(bitnode*)malloc(sizeof(bitnode));
if (!t) printf("\n超过空间\n");
t->data=xt;
*s=t;
creatree(&((*s)->lchild));
creatree(&((*s)->rchild));
}
return;
}
void xian(bitree s)
{
if(s)
{
printf("%c->",s->data);
xian(s->lchild);
xian(s->rchild);
}
return;
}
void zhong(bitree s)
{
if(s)
{
zhong(s->lchild);
printf("%c->",s->data);
zhong(s->rchild);
}
return;
}
void hou(bitree s)
{
if(s)
{
hou(s->lchild);
hou(s->rchild);
printf("%c->",s->data);
}
return;
}
void main()
{
bitree s;
printf("\n请按先序方式输入数据!\n");
creatree(&s);
printf("\n按先序方式输出:\n");
xian(s);
printf("\b\n");
printf("\n按中序方式输出:\n");
zhong(s);
printf("\b\n");
printf("\n按后序方式输出:\n");
hou(s);
printf("\b\n");
getchar();
return;
}
我来回复