題目:輸入一棵二元樹的根結點,求該樹的深度。
從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
例如:輸入二元樹:
8 / /
6 10
// //
5 7 9 11
輸出該樹的深度3。
二元樹的結點定義如下:
struct sbinarytreenode // a node of the binary tree
;
思想:同
[程式設計之美-16]
主要考察還是層序遍歷思想。
**如下:
#include#includeusing namespace std;
struct bstreenode
;int depthofbstree = 0;
void addbstreenode(bstreenode *&pcurrent, int value);
void levelorderbstree(bstreenode *proot);
int main()
if(pcurrent->m_pright != null)
if(pcurrent == last)
}}void addbstreenode(bstreenode *&pcurrent, int value)
else
}
程式設計之美 02 把二元查詢樹變成為排序的雙向鍊錶
題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。首先我們定義的二元查詢樹節點的資料結構如下 struct bstreenode 主要考察 二叉樹的中序...
求二元查詢樹的映象
題目 輸入一顆二元查詢樹,將該樹轉換為它的映象,即在轉換後的二元查詢樹中,左子樹的結點都大於右子樹的結點。用遞迴和迴圈兩種方法完成樹的映象轉換。例如輸入 8 610 57 911輸出 8 106 11 9 7 5定義二元查詢樹的結點為 struct bstreenode a node in the ...
求二元查詢樹的映象
程式設計師面試題精選 11 求二元查詢樹的映象 題目 輸入一顆二元查詢樹,將該樹轉換為它的映象,即在轉換後的二元查詢樹中,左子樹的結點都大於右子樹的結點。用遞迴和迴圈兩種方法完成樹的映象轉換。例如輸入 8 610 5 7911輸出 8 106 1197 5定義二元查詢樹的結點為 struct bst...