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...