資料結構 C語言 資料結構 查詢

2021-10-13 15:25:13 字數 1346 閱讀 2506

二、查詢演算法的效能分析

三、基於線性表的查詢

四、基於樹的查詢

五、基於雜湊表的查詢

文章索引

分類

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...