對於給定的二叉樹,本題要求你按從上到下、從左到右的順序輸出其所有葉節點。
輸入格式:
首先第一行給出乙個正整數 n(≤10),為樹中結點總數。樹中的結點從 0 到 n−1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 「-」。編號間以 1 個空格分隔。
輸出格式:
在一行中按規定順序輸出葉節點的編號。編號間以 1 個空格分隔,行首尾不得有多餘空格。
輸入樣例:
8
1 -- -
0 -2 7
- -- -
5 -4 6
輸出樣例:
4 1 5
思路:先找出誰是根節點,然後自然想到了遞迴建立此樹。
樹建好了,用層序遍歷輸出葉節點即可。
用了c++ 佇列
一些簡單操作:
加入元素 push(加入到後面
刪除元素pop (刪除前面,只是刪除,不返回元素
empty 判斷為空否
size 返回大小
front 返回隊頭元素,不會刪除它
back 返回隊尾元素,不會刪除
#include#include#includeusing namespace std;
typedef struct node no;
typedef no *bstree;
typedef bstree ptr;
struct node;
char num[12][2];
int co=0;
ptr creat_tree(bstree p,int i)//遞迴建樹
if(num[i][1]!='-')
return p;
}void l_o_t(bstree t)//層序遍歷
if(tep->l) dd.push(tep->l);//有左孩子,加入佇列
if(tep->r) dd.push(tep->r); //有右孩子,加入佇列 }}
int main(void)
; for(int i=0;il->data);
l_o_t(rootp);
return 0;
}
列出葉結點
對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。輸入格式 首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。輸出格式 在一行...
列出葉結點
問題 對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。輸入格式 首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。輸出格式 ...
PAT 列出葉結點
首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1 個空格分隔。在一行中按規定順序輸出葉節點的編號。編號間以 1 個空格分隔,行首尾不得有多餘空格。8 1 0 2...