順序表查找導(dǎo)入_第1頁
順序表查找導(dǎo)入_第2頁
順序表查找導(dǎo)入_第3頁
順序表查找導(dǎo)入_第4頁
順序表查找導(dǎo)入_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第九章第九章 查找查找查找表查找表查找表: 是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合對查找表經(jīng)常進行的對查找表經(jīng)常進行的操作:操作:(1)、查詢某個“特定的”數(shù)據(jù)元素是否在查找表中;(2)、檢索某個“特定的”數(shù)據(jù)元素的各種屬性;(3)、在查找表中插入一個數(shù)據(jù)元素;(4)、從查找表中刪除一個數(shù)據(jù)元素;查找 根據(jù)給定的某個值,在查找表中確定一個其關(guān)鍵字等于給定值得數(shù)據(jù)元素(或記錄)關(guān)鍵字關(guān)鍵字 是數(shù)據(jù)元素(或記錄)中某個數(shù)據(jù)項的值,用以標志一個數(shù)據(jù)元素(或記錄)。 若此關(guān)鍵字可以識別唯一的一個記錄,則稱為“主關(guān)鍵字主關(guān)鍵字”。 若此關(guān)鍵字能識別若干個記錄,則稱之為“次關(guān)鍵字關(guān)鍵字”。查找 根據(jù)給

2、定的某個值,在查找表中確定一個其關(guān)鍵字等于給定值得數(shù)據(jù)元素(或記錄) 若查找表中存在這樣一個記錄,則稱“查找成功查找成功”,查找結(jié)果為:給出整個記錄的信息,或指示該記錄在查找表中的位置;否則稱為“查找不成功查找不成功”,查找結(jié)果:給出“空記錄”或“空指針”如何進行查找?如何進行查找?取決于查找表的結(jié)構(gòu) 然而,查找表本身是一種松散的結(jié)構(gòu),因此,為了提高查找的效率,需要在查找表中的勻速之間人為地附加某種確定的關(guān)系,換句話說,用另外一種結(jié)構(gòu)來表示查找表。根據(jù)操作類型的不同:根據(jù)操作類型的不同: 1、 靜態(tài)查找表 (僅作查詢與檢索操作) 2、動態(tài)查找表數(shù)據(jù)對象數(shù)據(jù)對象D:數(shù)據(jù)關(guān)系數(shù)據(jù)關(guān)系R:D是具有相

3、同特性的數(shù)據(jù)元素的集合。數(shù)據(jù)元素同屬一個集合。ADT StaticSearchTable 1.抽象數(shù)據(jù)類型的定義抽象數(shù)據(jù)類型的定義D是具有相同特性的數(shù)據(jù)元素的集合。每個數(shù)每個數(shù)據(jù)元素含有類型相同的據(jù)元素含有類型相同的關(guān)鍵字關(guān)鍵字,可唯一標識數(shù)據(jù)元素。 主關(guān)鍵字主關(guān)鍵字 Create(&ST, n);Destroy(&ST);Search(ST, key);Traverse(ST, Visit();基本操作基本操作 P:9.1靜態(tài)查找表靜態(tài)查找表1.順序表查找2.有序表查找3.靜態(tài)樹表查找4.索引順序表查找靜態(tài)查找表的查找算法靜態(tài)查找表的查找算法1)順序查找順序查找即用逐一比較的辦法順序查找關(guān)鍵

4、字,即用逐一比較的辦法順序查找關(guān)鍵字,技巧:技巧: 把待查關(guān)鍵字把待查關(guān)鍵字key存入表頭或表尾存入表頭或表尾(俗稱(俗稱“哨兵哨兵”),),即用即用逐一比較逐一比較的辦法順序查找關(guān)鍵字,的辦法順序查找關(guān)鍵字,這顯然是最直接的辦法。這顯然是最直接的辦法。技巧:技巧: 把待查關(guān)鍵字把待查關(guān)鍵字key存入表頭或表尾存入表頭或表尾(俗稱(俗稱“哨兵哨兵”),這樣可以加快執(zhí)行),這樣可以加快執(zhí)行速度。速度。21 37 88 19 92 05 64 56 80 75 13 0 1 2 3 4 5 6 7 8 9 10 11 ST.LengthST.elemi21 37 88 19 92 05 64 56

5、 80 75 13 0 1 2 3 4 5 6 7 8 9 10 11 ST.LengthST.elemi60ikey=64key=60i64示例:已知靜態(tài)查找表ST如下:int Search_Seq(SSTable ST, KeyType key) / 在順序表ST中順序查找其關(guān)鍵字等于 / key的數(shù)據(jù)元素。若找到,則函數(shù)值為 / 該元素在表中的位置,否則為0。 ST.elem0.key = key; / “哨兵” for (i=ST.length; ST.elemi.key!=key; -i); / 從后往前找 return i; / 找不到時,i為0 / Search_Seqint Search_Seq(SSTable ST, KeyType key) pd=0; / 判斷標記 for (i=1;i=ST.length; i+) if (ST.e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論