計算二叉樹中指定結點所在的層次

2021-10-08 01:17:35 字數 835 閱讀 5217

description

設二叉樹的儲存結構為二叉鍊錶。在二叉鍊錶中的每個結點由三部分組成:左孩子指標、右孩子指標和結點資料,其中如果乙個結點的左右孩子不存在,則對應的指標記錄為空,空指標用字元^佔位。

input

輸入包括兩行:

第一行:一棵非空的二叉樹,每棵二叉樹按先序遍歷形式,空指標用字元^佔位。

第二行:要查詢的指定結點

測試時,每棵樹不會超過20個結點。

output

返回指定結點所在的層次,如果沒找到該結點返回0。

sample input

abd^^cef^c

sample output

2

#include #include#includetypedef struct node

bitnode, *bitree;

void createbitree(bitree* t)

else

(*t)->data = ch;

createbitree

(&((*t)->lchild));

createbitree

(&((*t)->rchild));

}}int getnodelayer (bitree t,int level,char key)

l = getnodelayer (t->lchild,level+1,key)

; if(l != 0)

else

} return 0;

}int getbitreenodelayer(bitree t, char key)

int main()

二叉數查詢指定結點

指定的節點用節點儲存的資料來代表,採用遞迴的方法先判斷當前節點是否是目標節點,若不是則依次查詢左子樹和右子樹 include include using namespace std typedef struct tr tre,tree stack st tree creat tree root,in...

求出指定結點在給定二叉排序樹中所在的層數

include define endkey 0 typedef struct node bstnode,bstree void insertbst bstree bst,int key else if key bst key insertbst bst lchild key else if key ...

計算二叉樹中值為data的結點所在的層數

定義二叉樹的二叉鍊錶,設其元素為整數。然後編寫函式,計算二叉樹中值為data結點所在的層數。include include define maxsize 20 define treesize 7 typedef char elemtype typedef struct btnode btnode,b...