求二叉樹中值為x的結點的層號

2021-10-03 22:46:17 字數 997 閱讀 2501

【問題描述】

以二叉鍊錶為儲存結構,編寫演算法求二叉樹中值為x的結點的層號。

【輸入形式】兩行,第一行是擴充套件二叉樹的前序遍歷序列,第二行是待查詢結點x

【輸出形式】值為x的結點所在層號。根結點所在層記為第1層。

【樣例輸入】ab#d##c##

d
【樣例輸出】

3
#include

using

namespace std;

template

<

typename datatype>

struct binode

;template

<

typename datatype>

class

bitree

intlevelnum

(datatype x)

private

: binode

*creat()

; binode

*root;

intlevelnum

(binode

*bt,

int level,datatype x);}

;template

<

typename datatype>

binode

*bitree

::creat()

return bt;

}template

<

typename datatype>

int bitree

::levelnum

(binode

*bt,

int level,datatype x)

intmain()

求二叉樹中值為x的結點的層號

問題描述 以二叉鍊錶為儲存結構,編寫演算法求二叉樹中值為x的結點的層號。輸入形式 兩行,第一行是擴充套件二叉樹的前序遍歷序列,第二行是待查詢結點x 輸出形式 值為x的結點所在層號。根結點所在層記為第1層。樣例輸入 ab d c d 樣例輸出 3分析 1.構建二叉樹 結點 2.輸入結點數值 3.遍歷記...

計算二叉樹中值為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...