層次遍歷二叉樹

2022-03-18 15:20:30 字數 2069 閱讀 1697

層次遍歷二叉樹,程式設計之美上看過解法,然後在練習了一下。用遞迴和vector,佇列實現了,然後加上了測試函式,測試函式的二叉樹建立方法待改進。

//

有一棵二叉樹,請設計乙個演算法,按照層次列印這棵二叉樹。

//給定二叉樹的根結點root,請返回列印結果,結果按照每一層乙個陣列進行儲存,所有陣列的順序按照層數從上往下,且每一層的陣列內元素按照從左往右排列。保證結點數小於等於500。

#include

using

namespace

std;

#include

#include

#define n 10

struct

treenode

};class

treeprinter

vc.push_back(res);

res.clear();

}return

vc; }

int printtreelevel(treenode* root, int level)//

訪問以root為根節點的第level層結點。失敗返回0,成功返回1;

if (level == 0

)

return printtreelevel(root->left, level - 1) + printtreelevel(root->right, level - 1

); }

//二叉樹的深度

int deepth(treenode*root)

return deepth(root->left) > deepth(root->right) ? (deepth(root->left) + 1) : (deepth(root->right) + 1

); }

private

: vector

res;

//方法二:從根節點出發,依次將每層結點從左到右壓入乙個陣列,並用cur記錄當前訪問的結點,last標記當前層的最後乙個結點的下乙個位置(下標從0開始),當cur==last表示當前層訪問結束

public

:

//vector> printtree2(treenode* root)

//

//vectorvc;

//vectorlevel;

//int cur = 0;

//int last = 1;

//while (cur < vc.size())

//

//if (vc[cur]->right)

//

//cur++;

//}//}

//return res;

//}////運用佇列

//vector> printtree1(treenode* root)

//if (cur->right)

//if (last == cur)

//}//return result;

//}//private:

//char test ;

//void createbitree(treenode* root)

//字串型別的樹建立方法

//

//else

// //}

//數字型別的樹建立的方法

//所以這樣方式建立還需要改進

//生成乙個結點

treenode* createnode(int

i)

treenode*cretetree()

;for (int i = 0; i < n;i++)

for (int i = 0; i < n / 2;i++)

p[4]->right =nullptr;

return p[0

]; }

public

:

int getleafnode(treenode*t)

};int

main()

cout

<}

return0;

}

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...

二叉樹層次遍歷

層次遍歷二叉樹,每一次儲存在list中,結果按從葉子層到根,從左到右的順序儲存 一 class solution return lists 相當於在先序的基礎上改進,level是每個node所在的層次。如果lists大小和level相等,說明開始新一層的儲存。如果不等,則直接把值存入相應層次的lis...