定義二叉樹的二叉鍊錶,設其元素為整數。然後編寫函式,計算二叉樹中值為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 ...