您现在的位置: 主页 > 嵌入式操作系统 > Linux > 二叉树的序遍历
本文所属标签:
为本文创立个标签吧:

二叉树的序遍历

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-06-29 

题目描述

求一棵二叉树的前序遍历,中序遍历和后序遍历。

输入输出格式

输入描述:

第一行一个整数n,表示这棵树的节点个数。

接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。

输出描述:

输出一共三行,分别为前序遍历,中序遍历和后序遍历。编号之间用空格隔开。

输入输出样例

输入样例#1:

5

2 3

4 5

0 0

0 0

0 0

输出样例#1:

1 2 4 5 3

4 2 5 1 3

4 5 2 3 1

思路

递归。先写好先序,再将先序略微改动,复制粘贴三遍即可。

代码

复制代码

#include

int a[100],b[100];

void A(int i)

{

printf("%d ",i);

if(a[i])

A(a[i]);

if(b[i])

A(b[i]);

}

void B(int i)

{

if(a[i])

B(a[i]);

printf("%d ",i);

if(b[i])

B(b[i]);

}

void C(int i)

{

if(a[i])

C(a[i]);

if(b[i])

C(b[i]);

printf("%d ",i);

}

int main()

{

int n,i;

scanf("%d",&n);

for(i=1;i<=n;i++)

scanf("%d%d",&a[i],&b[i]);

A(1);

printf("n");

B(1);

printf("n");

C(1);

return 0;

}



              查看评论 回复



 输入 输出 遍历

"二叉树的序遍历"的相关文章

网站地图

围观()