問題描述及**:
/*
*煙台大學計算機與控制工程學院
*作 者:張雯婧
*完成日期:2023年11月25日
*問題描述:輸出在二叉排序中查詢時查詢某個關鍵字經過的路徑。
*/
#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;
}
執行結果:
知識點總結
其實還是折半查詢的思想,只是將所有的折半後的數字換成樹的形式,然後在樹中查詢。平衡度的問題只是複雜度的問題,這個另講。
學習心得
學完圖之後覺得學查詢輕鬆多了,學會資料結構有了將抽象換為不抽象的能力。
第十四周上機實踐 專案2 二叉樹排序樹中查詢的路徑
檔名稱 test.cpp 完成日期 2015年11月30日 版本 v1.0 問題描述 設計乙個演算法,輸出在二叉排序中查詢時查詢某個關鍵字經過的路徑。輸入描述 無 輸出描述 所得結果。include include define maxsize 100 typedef int keytype 定義關...
第十四周專案2 二叉樹排序樹中查詢的路徑
設計乙個演算法,輸出在二叉排序中查詢時查詢某個關鍵字經過的路徑。include include define maxsize 100 typedef int keytype 定義關鍵字型別 typedef char infotype typedef struct node 記錄型別 bstnode ...
第十四周專案2 二叉樹排序樹中查詢的路徑
問題及 檔名稱 二叉樹排序樹中查詢的路徑.cpp 作 者 杜文文 完成日期 2015年 12月 7日 問題描述 設計乙個演算法,輸出在二叉排序中查詢時查詢某個關鍵字經過的路徑。include include define maxsize 100 typedef int keytype 定義關鍵字型別...