2个回答
展开全部
先序遍历:从根节点开始,先访问根,再访问左子树,再访问右子树,对于左子树与右子树,也按此顺序
中序遍历:
从根节点开始,先访问左子树,再访问根,再访问右子树,对于左子树与右子树,也按此顺序
后续遍历:先访问左子树,再访问右子树,再访问根,对于左子树与右子树,也按此顺序
中序遍历:
从根节点开始,先访问左子树,再访问根,再访问右子树,对于左子树与右子树,也按此顺序
后续遍历:先访问左子树,再访问右子树,再访问根,对于左子树与右子树,也按此顺序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*
**二叉树的建立和遍历
*/
#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;
}
//我以前写的一个例子,去看下
**二叉树的建立和遍历
*/
#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;
}
//我以前写的一个例子,去看下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询