二、查詢演算法的效能分析
三、基於線性表的查詢
四、基於樹的查詢
五、基於雜湊表的查詢
文章索引
分類
typedef
struct
elemtype;
typedef
struct
sstable;
從表中第一條/最後一條記錄開始,逐個進行記錄的關鍵字與給定值的比較,若某個記錄的關鍵字和給定值比較相等,則查詢成功,返回其在順序表中的位序;反之,若直至最後一條/第一條記錄其關鍵字和給定值比較都不等,則查詢不成功,返回0。
折半查詢(二分查詢):先確定待查記錄所在範圍,逐步縮小範圍,直到找到或找不到該記錄止。
查詢構建
bst建樹的過程:就是查詢失敗時元素不斷插入的過程。
再插入二叉排序樹的刪除
二叉排序樹的查詢分析
構造方法
平衡二叉樹的效能分析
在平衡的二叉排序樹bbst上插入新的資料元素e的遞迴演算法:
(1)若bbst為空樹
(2)若e的關鍵字和bbst的根結點關鍵字相等
(3)若e的關鍵字小於bbst的根結點關鍵字且在bbst的左子樹上不存在和e有相同關鍵字的結點,在bbst的左子樹插入e;當由於插入e導致左子樹深度增1時:
①插入前bbst根結點的平衡因子為-1
②插入前bbst的根結點的平衡因子為0
③插入前bbst的根結點的平衡因子為1
若bbst左子樹根結點的平衡因子為1(ll),進行單向右旋處理
若bbst左子樹根結點的平衡因子為-1(lr),進行先左後右的雙向旋轉平衡處理
(4)若e的關鍵字大於bbst的根結點的關鍵字,而且在bbst的右子樹中不存在和e有相同關鍵字的結點,則將e插入在bbst的右子樹上,且插入後的右子樹深度增1時,分別就不同情況處理,其處理操作和(3)所述對稱。
b-樹的刪除
在b-樹刪除乙個關鍵字,首先必須找到待刪關鍵字所在結點,從中刪除之。若該結點為最下層的非終端結點,且刪除前其關鍵字個數不少於m/2 ,則刪除完成;否則要進行結點的合併。若該結點不是最底層的非終端結點,被刪關鍵字是其第i個關鍵字,則將ai-1或ai所指子樹中的最大(或最小)關鍵字y移上來代替ki,然後在相應的結點中刪去y。
因此可以只討論刪除最下層非終端結點內關鍵字的情形。
數字分析法
取關鍵字分布均勻的若干位或組合作雜湊位址
平方取中法
摺疊法隨機數法
除留餘數法
雜湊表的插入
在查詢失敗時在失敗位置插入元素
C語言 資料結構
指標一維陣列 指標陣列 陣列指標 malloc函式 字元陣列 結構體聯合體 報錯問題 亂碼了,阿肆的github,這裡顯示正常,都是傳的md檔案。include include int main void ide根據檔案字尾選擇編譯器,cpp呼叫c 編譯器 c程式進行編譯是以源程式檔案為物件進行的,...
C語言資料結構
1 鍊錶的高階操作 void reverse struct node l p1 next tailp l next p1 鍊錶的反轉 2 鏈式儲存結構的棧 鏈棧 struct snode 棧的節點定義 struct stack 棧的定義 struct stack initstack 棧的初始化 bo...
資料結構 c語言
目錄順序表樹圖 ifndef status h define status h include define true 1 define false 0 define ok 1 define error 0 ifndef overflow define overflow 2 endif ifndef...