日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二叉树的序遍历

發布時間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二叉树的序遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
時間限制: 1 s?空間限制: 32000 KB?題目等級 : 白銀 Silver 題目描述?Description

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

輸入描述?Input Description

第一行一個整數n,表示這棵樹的節點個數。

接下來n行每行2個整數L和R。第i行的兩個整數Li和Ri代表編號為i的節點的左兒子編號和右兒子編號。

輸出描述?Output Description

輸出一共三行,分別為前序遍歷,中序遍歷和后序遍歷。編號之間用空格隔開。

樣例輸入?Sample Input

5

2 3

4 5

0 0

0 0

0 0

樣例輸出?Sample Output

1 2 4 5 3

4 2 5 1 3

4 5 2 3 1

數據范圍及提示?Data Size & Hint

n <= 16

代碼實現:

1 #include<cstdio> 2 int n,a,b,tr[60],v[60]; 3 inline void xx(int x){if(!tr[x]) return;printf("%d ",tr[x]);xx(x*2);xx(x*2+1);} 4 inline void zx(int x){if(!tr[x]) return;zx(x*2);printf("%d ",tr[x]);zx(x*2+1);} 5 inline void hx(int x){if(!tr[x]) return;hx(x*2);hx(x*2+1);printf("%d ",tr[x]);} 6 int main(){ 7 scanf("%d",&n);tr[1]=v[1]=1; 8 for(int i=1;i<=n;i++){ 9 scanf("%d%d",&a,&b); 10 tr[v[i]*2]=a;tr[v[i]*2+1]=b; 11 v[a]=v[i]*2;v[b]=v[i]*2+1; 12 } 13 xx(1);printf("\n"); 14 zx(1);printf("\n"); 15 hx(1);printf("\n"); 16 return 0; 17 }

。。。

轉載于:https://www.cnblogs.com/J-william/p/6160319.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的二叉树的序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。