第十四周專案二 二叉樹排序樹中查詢的路徑

2021-07-08 11:41:46 字數 1571 閱讀 3163

/*問題及**

*all right reserved.

*檔名稱:二叉樹排序樹中查詢的路徑.cpp

*版本號;v1.0

*問題描述:

設計乙個演算法,輸出在二叉排序中查詢時查詢某個關鍵字經過的路徑。

*輸入描述:無

*程式輸出:根據要求輸出

*/

#include #include #define maxsize 100

typedef int keytype; //定義關鍵字型別

typedef char infotype;

typedef struct node //記錄型別

bstnode;

int path[maxsize]; //全域性變數,用於存放路徑

void dispbst(bstnode *b); //函式說明

int insertbst(bstnode *&p,keytype k) //在以*p為根節點的bst中插入乙個關鍵字為k的節點

else if (k==p->key)

return 0;

else if (kkey)

return insertbst(p->lchild,k); //插入到*p的左子樹中

else

return insertbst(p->rchild,k); //插入到*p的右子樹中

}bstnode *creatbst(keytype a,int n)

//由陣列a中的關鍵字建立一棵二叉排序樹

else

}//查詢並顯示經過的路徑

void searchresult(bstnode *bt, int k1)

void dispbst(bstnode *bt)

//以括號表示法輸出二叉排序樹bt

}}int main()

,n=10;

printf("建立的bst樹:");

bt=creatbst(a,n);

dispbst(bt);

printf("\n");

printf(" 查詢%d關鍵字:",k1);

searchresult(bt,k1);

printf(" 查詢%d關鍵字:",k2);

searchresult(bt,k2);

return 0;

}

執行結果

知識點總結

其實還是折半查詢的思想,只是將所有的折半後的數字換成樹的形式,然後在樹中查詢。平衡度的問題只是複雜度的問題,這個另講。

學習心得

發現前輩們真的是有智慧型,能夠發明出各種的演算法方便人類,這同時也是科學的魅力所在。希望未來的自己能夠成為發明者實施者方便世界。

學完圖之後覺得學查詢輕鬆多了,學了資料結構有了將抽象換為不抽象的能力。

第十四周(專案二) 二叉樹排序樹中查詢的路徑

include include define maxsize 100 typedef int keytype 定義關鍵字型別 typedef char infotype typedef struct node 記錄型別 bstnode int path maxsize 全域性變數,用於存放路徑 vo...

第十四周 專案二二叉樹排序樹中查詢的路徑

檔名稱 查詢.cpp 作 者 周國亮 完成日期 2016年12月2日 版 本 號 v1.0 問題描述 輸入描述 無 程式輸出 若干 include include define maxsize 100 typedef int keytype 定義關鍵字型別 typedef char infotype...

第十四周 專案二二叉樹排序樹中查詢的路徑

檔名稱 查詢.cpp 作 者 陳朋 完成日期 2016年12月15日 版 本 號 v1.0 問題描述 輸入描述 無 程式輸出 若干 include include define maxsize 100 typedef intkeytype 定義關鍵字型別 typedef char infotype ...