列出葉結點

2021-09-24 17:04:56 字數 1129 閱讀 9453

對於給定的二叉樹,本題要求你按從上到下、從左到右的順序輸出其所有葉節點。

輸入格式:

首先第一行給出乙個正整數 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...