先序遍历,中序遍历,后续遍历,怎么理解啊,急!!!

最好找个二叉树的例子... 最好找个二叉树的例子 展开
 我来答
tinnahust
2011-04-12 · 超过25用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:70.6万
展开全部
先序遍历:从根节点开始,先访问根,再访问左子树,再访问右子树,对于左子树与右子树,也按此顺序
中序遍历:
从根节点开始,先访问左子树,再访问根,再访问右子树,对于左子树与右子树,也按此顺序

后续遍历:先访问左子树,再访问右子树,再访问根,对于左子树与右子树,也按此顺序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1317204986
2011-04-12 · TA获得超过492个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:355万
展开全部
/*
**二叉树的建立和遍历
*/
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef struct TNode
{
char data;
struct TNode *lchild;
struct TNode *rchild;
}TNode;
TNode *
creat_tree()
{
char data;
TNode *p;
//printf("please input a letter:\n");
scanf("%c",&data);
if(data=='@')return NULL;
else {
p=(TNode *)malloc(sizeof(TNode));
assert(p!=NULL);
p->data=data;
p->lchild=creat_tree();
p->rchild=creat_tree();
return p;
}
}
/*
**先序遍历
*/
void
show_first(TNode *p)
{
if(p){
printf("%c ",p->data);
show_first(p->lchild);
show_first(p->rchild);
}
}
/*
**中序遍历
*/
void
show_middle(TNode *p)
{
if(p){
show_middle(p->lchild);
printf("%c ",p->data);
show_middle(p->rchild);
}
}
/*
**后序遍历
*/
void
show_last(TNode *p)
{
if(p) {
show_last(p->lchild);
show_last(p->rchild);
printf("%c ",p->data);
}
}
int
main(void)
{
TNode *p;
p=creat_tree();
show_first(p);
putchar('\n');
show_middle(p);
putchar('\n');
show_last(p);
putchar('\n');
return 0;
}
//我以前写的一个例子,去看下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式