歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 二叉樹的序遍歷

二叉樹的序遍歷

日期:2017/3/1 9:18:06   编辑:Linux編程

題目描述

求一棵二叉樹的前序遍歷,中序遍歷和後序遍歷。

輸入輸出格式

輸入描述:

第一行一個整數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<stdio.h>
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;
}

二叉樹的常見問題及其解決程序 http://www.linuxidc.com/Linux/2013-04/83661.htm

【遞歸】二叉樹的先序建立及遍歷 http://www.linuxidc.com/Linux/2012-12/75608.htm

在JAVA中實現的二叉樹結構 http://www.linuxidc.com/Linux/2008-12/17690.htm

【非遞歸】二叉樹的建立及遍歷 http://www.linuxidc.com/Linux/2012-12/75607.htm

二叉樹遞歸實現與二重指針 http://www.linuxidc.com/Linux/2013-07/87373.htm

二叉樹先序中序非遞歸算法 http://www.linuxidc.com/Linux/2014-06/102935.htm

輕松搞定面試中的二叉樹題目 http://www.linuxidc.com/linux/2014-07/104857.htm

Copyright © Linux教程網 All Rights Reserved