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

2021-08-01 15:25:52 字數 1513 閱讀 1170



定義二叉樹的二叉鍊錶,設其元素為整數。然後編寫函式,計算二叉樹中值為data結點所在的層數。

#include#include#define maxsize 20

#define treesize 7

typedef char elemtype;

typedef struct btnode

btnode, *btree;

elemtype datas[maxsize] = ;

btnode *getbtnode();//返回乙個二叉樹節點

btree createbtree();//靜態建立乙個二叉樹

void visit(btnode *btnode);//輸出某一節點資料

void preorder(btree btree); //前序遍歷

void inorder(btree btree); //中序遍歷

void postorder(btree btree);//後序遍歷

void showtree(btree btree);//靜態輸出二叉樹圖形

//在btree為根的二叉樹中,查詢資料data,並將res賦值為data所在的層數(根節點層數為1)

//floor記錄當前訪問的層數

void getfloor(btree btree, elemtype data, int floor, int *res);

int main()

else

getchar();

return 0;

}//在btree為根的二叉樹中,查詢資料data,並將res賦值為data所在的層數(根節點層數為1)

//floor記錄當前訪問的層數

void getfloor(btree btree, elemtype data, int floor, int *res)

getfloor(btree->lchild, data, floor + 1, res);

getfloor(btree->rchild, data, floor + 1, res); }}

void visit(btnode *btnode)

btnode *getbtnode()

btree createbtree()

btns[0]->lchild = btns[1];

btns[0]->rchild = btns[2];

btns[1]->lchild = btns[3];

btns[1]->rchild = btns[4];

btns[2]->lchild = btns[5];

btns[2]->rchild = btns[6];

return btns[0];

}void showtree(btree btree)

void preorder(btree btree)

}void inorder(btree btree)

}void postorder(btree btree)

}

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

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

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

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

計算二叉樹的結點個數

include using namespace std extern int gnum 0 struct infor class test static int creattrees struct infor p,int k if 2 k creattrees q,1 creattrees q,2 ...