查詢(順序查詢 折半查詢和二叉排序樹的查詢與插入)

2021-10-02 11:50:18 字數 980 閱讀 3218

typedef

struct

elemtype;

typedef

struct

演算法思想:

先確定待查記錄的範圍。

給定的值與中間記錄進行比較

若相等,則找到, 返回位置。

若不相等,則縮小範圍在前半部分或後半部分。

重複2,直到找到或不存在範圍找不到結束。

//折半查詢

intsearch_bin

(sstable st,

int key)

return0;

}

動態查詢表的特點:

什麼是二叉排序樹?(二叉查詢樹)

或者是一棵空樹,或者是具有下面性質的二叉樹:

若它的左子樹不空,則左子樹上所有結點的值均小於它的根的值;

若它的右子樹不空,則右子樹上所有結點的值均大於它的根的值;

它的左、右子樹也分別是二叉排序樹。

//二叉排序樹

bitree searchbst

(bitree t,

int key)

二叉排序樹是一種動態樹表。其特點是:

樹的結構通常不是一次生成的,而是在查詢的過程中,當 不存在關鍵字等於給定值的結點時在進行插入。

新插入的結點一定是葉子,並且是查詢不成功時查詢路徑 上最後乙個結點的左子女或右子女。

//插入操作

intsearchbst

(bitree t,

int key, bitree &p)

else

if(t->key > key)

else

}int

insertbst

(bitree &t,

int key)

順序查詢和折半查詢

順序查詢可以是線性表也可以是鍊錶,同是既可以是有序的也可以是無序。折半查詢僅適用於有序的線性表 include include define elemtype inttypedef struct sstable 表的資料結構 void creatss sstable st 建立線性表 void pr...

靜態查詢(順序查詢和折半查詢)

聽說過一句話,程式設計之久,除了資料結構和演算法什麼也不屬於我們。為了更好的學習資料結構和演算法,今天決定先把清華大學出版的資料結構 c語言版 書中的演算法實現一遍。現在開始第一彈。貴在堅持。順序查詢 演算法描述 include include 順序表的查詢 define eq a,b a b de...

順序查詢 折半查詢

順序查詢 基本流程 從線性表的一端開始,逐一查詢滿足條件的線性表元素,有則返回元素位置資訊,無則返回錯誤資訊。include using namespace std int seq search int arr,int len,int key return 1 int main int num 6 ...