【問題描述】
以二叉鍊錶為儲存結構,編寫演算法求二叉樹中值為x的結點的層號。
【輸入形式】兩行,第一行是擴充套件二叉樹的前序遍歷序列,第二行是待查詢結點x
【輸出形式】值為x的結點所在層號。根結點所在層記為第1層。
【樣例輸入】ab#d##c##
d【樣例輸出】
3分析:
1.構建二叉樹 結點
2.輸入結點數值
3.遍歷記錄層數
4.判斷 輸出結果
構建二叉樹 結點
template
<
typename datatype>
struct binode
;template
<
typename datatype>
class
bitree
intlevelnum
(datatype x)
private
: binode
*create()
;int
levelnum
(binode
*bt,
int level,datatype x)
; binode
*root;
};
輸入結點數值
template
<
typename datatype>
binode
*bitree
::create()
return bt;
}
遍歷記錄層數
int bitree
::levelnum
(binode
*bt,
int level,datatype x)}}
}
主函式
int
main()
在下是一名小白 如果有不恰當的地方 歡迎指正 求二叉樹中值為x的結點的層號
問題描述 以二叉鍊錶為儲存結構,編寫演算法求二叉樹中值為x的結點的層號。輸入形式 兩行,第一行是擴充套件二叉樹的前序遍歷序列,第二行是待查詢結點x 輸出形式 值為x的結點所在層號。根結點所在層記為第1層。樣例輸入 ab d c d 樣例輸出 3 include using namespace std...
計算二叉樹中值為data的結點所在的層數
定義二叉樹的二叉鍊錶,設其元素為整數。然後編寫函式,計算二叉樹中值為data結點所在的層數。include include define maxsize 20 define treesize 7 typedef char elemtype typedef struct btnode btnode,b...
求二叉樹的雙親結點
思路就是如果當前任乙個孩子結點的值等於k,說明當前節點即為所需結點的雙親結點,通過遞迴實現唯一比較麻煩的是要寫很多條件,不然會報錯。主要功能實現是preorder函式其他是構建和列印二叉樹的函式。include include include using namespace std define t...