對於給定的二叉樹,本題要求你按從上到下、從左到右的順序輸出其所有葉節點。
輸入格式:
首先第一行給出乙個正整數 n(≤10),為樹中結點總數。樹中的結點從 0 到 n−1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 「-」。編號間以 1 個空格分隔。
輸出格式:
在一行中按規定順序輸出葉節點的編號。編號間以 1 個空格分隔,行首尾不得有多餘空格。
輸入樣例:
81-
--0-
27--
--5-
46
輸出樣例:
4
15
思路:我是分為三個部分,第乙個部分就是對該樹的建立過程,且在建立中記錄出現過的結點,最後沒有出現的結點即為根節點。第二個部分為對該樹按照廣度優先的順序進行輸出,且我這裡採用的是用陣列模擬佇列的方法。第三部分即輸出符合條件的結點即可,因為第二部分已經按照廣度優先的順序儲存結點到陣列中,因此只需要對陣列中的元素依次判斷是否為葉子結點,若是則輸出否則則不輸出。
**如下所示:
#include
#include
struct node
t[20];
intmain()
;scanf
("%d"
,&n)
;//第一部分的**,即建立樹的結構並找出根節點root
getchar()
;for
(int i =
0; i < n; i++)if
(cr ==
'-')
t[i]
.right =-1
;else
getchar()
;}int root;
for(
int i=
0;i//第二部分將樹按照廣度優先的順序儲存到陣列a中 ,其中i模擬隊頭但不進行刪除操作,j模擬隊尾進行入隊計數
int a[20]
; a[0]
=root;
int i=
0,j=
1,flag=0;
while
(i!=
(n-1))
if(t[a[i]
].right!=-1
) i++;}
//第三部分將葉子結點輸出
for(i=
0;i}
pta樹的同構與列出葉結點(詳解)
目錄 樹的同構 首先上思路大致思路 先找到該樹的根節點,然後順著根節點下去,到達的每乙個節點的時候,所在的那一層進行比較,之後開始比較給節點的左右孩子,像深搜一樣。詳解見 列出葉結點 這題我看網上,其他人基本上都是用bfs寫的,這題我沒用,收到了上題的啟發,這是我自己寫的,寫的比較簡單,好理解,也能...
7 16 列出葉結點 25分 C語言實現
對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。輸入格式 首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。輸出格式 在一行...
重啟c語言之串 串的模式匹配
給定乙個主串s 長度 10 6 和乙個模式串t 在長度 10的五次冪 要求在主串s中找出與模式t相匹配的子串,返回相匹配的子串中的第乙個字元在主串s 現的位置。輸入格式 輸入有兩行 第一行是主串s 第二行是模式t.輸出格式 輸出相匹配的子串中的第乙個字元在主串s 現的位置。若匹配失敗,輸出0.輸入樣...