程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 二叉樹的序遍歷,二叉樹序遍歷

二叉樹的序遍歷,二叉樹序遍歷

編輯:關於C語言

二叉樹的序遍歷,二叉樹序遍歷


題目描述

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

輸入輸出格式

輸入描述:

第一行一個整數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; } View Code

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved