劍指Offer 題23 從上往下列印二叉樹

2021-06-25 08:55:08 字數 1029 閱讀 1674

題目描述:從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

輸入:輸入可能包含多個測試樣例,輸入以eof結束。

對於每個測試案例,輸入的第一行乙個整數n(1<=n<=1000, :n代表將要輸入的二叉樹元素的個數(節點從1開始編號)。接下來一行有n個數字,代表第i個二叉樹節點的元素的值。接下來有n行,每行有乙個字母ci。

ci=』d』表示第i個節點有兩子孩子,緊接著是左孩子編號和右孩子編號。

ci=』l』表示第i個節點有乙個左孩子,緊接著是左孩子的編號。

ci=』r』表示第i個節點有乙個右孩子,緊接著是右孩子的編號。

ci=』z』表示第i個節點沒有子孩子。

輸出:對應每個測試案例,

按照從上之下,從左至右列印出二叉樹節點的值。

樣例輸入:

7

8 6 5 7 10 9 11

d 2 5

d 3 4zz

d 6 7

zz

樣例輸出:

8 6 10 5 7 9 11
#include #include typedef struct sd sdata;

typedef struct sstack;

stack stack;

sdata *pusharray;

int *poparray;

void initstack(int n)

void pop(stack* stack)

void push(stack *stack,int x)

int rtop(stack s)

int isempty(stack s)

void judge(sdata *pusharray,int *poparray,int n) {

int i,j;

if(n<=0)return;

for(i=0;i

劍指offer 程式設計題23(從上往下列印二叉樹)

public static class binarytreenode這道題實質是考查樹的遍歷演算法。從上到下列印二叉樹的規律 每一次列印乙個結點的時候,如果該結點有子結點,則把該結點的子結點放到乙個佇列的末尾。接下來到佇列的頭部取出最早進入佇列的結點,重複前面的列印操作,直至佇列中所有的結點都被列印...

劍指Offer之面試題23 從上往下列印二叉樹

所有 均通過g 編譯器 測試,僅為練手紀錄。面試題 23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。面試題23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。void treeprintbreadth...

《劍指offer》面試題23 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。思路 二叉樹的層次遍歷,借助乙個佇列實現。include include include using namespace std struct treenode class bintree treenode bintree createtree ...