![武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/26/b59e7929-3dd2-4b5b-bb21-7ee4108cc473/b59e7929-3dd2-4b5b-bb21-7ee4108cc4731.gif)
![武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/26/b59e7929-3dd2-4b5b-bb21-7ee4108cc473/b59e7929-3dd2-4b5b-bb21-7ee4108cc4732.gif)
![武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/26/b59e7929-3dd2-4b5b-bb21-7ee4108cc473/b59e7929-3dd2-4b5b-bb21-7ee4108cc4733.gif)
![武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/26/b59e7929-3dd2-4b5b-bb21-7ee4108cc473/b59e7929-3dd2-4b5b-bb21-7ee4108cc4734.gif)
![武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-9/26/b59e7929-3dd2-4b5b-bb21-7ee4108cc473/b59e7929-3dd2-4b5b-bb21-7ee4108cc4735.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告班級: 信管 專業(yè) 班 姓名: 學(xué)號: 實(shí)驗(yàn)時(shí)間: 年 月 日 指導(dǎo)教師: 實(shí)驗(yàn)四:查找操作與應(yīng)用一、實(shí)驗(yàn)?zāi)康模?1、掌握順序查找、折半查找、哈希查找的基本方法和操作過程2、掌握查找效率的分析方法二、實(shí)驗(yàn)內(nèi)容:1、編寫程序,實(shí)現(xiàn)順序查找操作,可參考書本P260示例程序。 實(shí)驗(yàn)步驟: 、在Java語言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長10),依次輸入10個(gè)數(shù)據(jù)元素(對元素存放的先后順序沒有要求),并按照存儲順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在順序表中進(jìn)行順序查找; 、輸出查找結(jié)果。2、編寫程序,實(shí)現(xiàn)有序表折半查找操作,可參考書本P263示例程序。 實(shí)驗(yàn)步驟
2、: 、在Java語言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長10),依次輸入10個(gè)數(shù)據(jù)元素(要求所有元素按照遞增順序排列),并按照存儲順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在有序表中進(jìn)行折半查找; 、輸出查找結(jié)果。3、編寫程序,實(shí)現(xiàn)哈希表查找操作。 實(shí)驗(yàn)步驟: 、在Java語言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長12),依次輸入10個(gè)數(shù)據(jù)元素,并按照存儲順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在哈希表中進(jìn)行查找; 、輸出查找結(jié)果。 已知:哈希函數(shù)為H(key)=key MOD 11,采用開放地址法、線性探測再散列解決沖突,輸入元素為 55,19,31,23,68,20,27,9,10,7
3、9。三、操作步驟:1.順序查找(1)將順序查找方法添加入SeqList.java中/順序表查找關(guān)鍵字為key元素,返回首次出現(xiàn)的元素,若查找不成功返回-1/key可以只包含關(guān)鍵字?jǐn)?shù)據(jù)項(xiàng),由 T 類的equals()方法提供比較對象相等的依據(jù)public int indexOf(T key)if(key != null)for(int i=0;ithis.len;i+)if(this.elementi.equals(key)/對象采用equals()方法比較是否相等return i;return -1;/空表,key為空對象或者未找到時(shí)public T search(T key) /查找,返回首
4、次出現(xiàn)的關(guān)鍵字為key的元素int find = this.indexOf(key);return find = -1?null:(T)this.elementfind;(2)Linearsearch.javapackage search;import java.util.Scanner;/* * * author pang * */public class Linearsearch public static void main(String args)SeqList list = new SeqList(10);list.append(2);list.append(3);list.appe
5、nd(4);list.append(5);list.append(6);list.append(7);list.append(8);list.append(9);list.append(10);list.append(11);System.out.println(list.toString();System.out.println(輸入要查找的數(shù):);Scanner scan = new Scanner(System.in);while(true)int key = scan.nextInt();System.out.println(順序查找: +list.search(key);(3)運(yùn)行結(jié)
6、果2.折半查找(1)將折半查找方法添加入SeqList.java中/在按升序排序的數(shù)組中,折半查找關(guān)鍵字為key元素,若找到返回下標(biāo),否則返回-1public int binarySearch(T key)int begin = 0;int end = this.len-1;if(key != null)while(begin0)/給定對象小end = mid-1;/查找范圍縮小到前半段elsebegin = mid+1;/查找范圍縮小到后半段return -1;/查找不成功(2)Binarysearch.javapackage search;import java.util.Scanner;
7、/* * * author pang * */public class Binarysearch public static void main(String args)SeqList list = new SeqList(10);list.append(2);list.append(3);list.append(4);list.append(5);list.append(6);list.append(7);list.append(8);list.append(9);list.append(10);list.append(11);System.out.println(list.toString
8、();System.out.println(輸入要查找的數(shù):);Scanner scan = new Scanner(System.in);while(true)int key = scan.nextInt();System.out.print(折半查找: );System.out.println(list.binarySearch(key);(3)運(yùn)行結(jié)果3.哈希查找(1)將構(gòu)造哈希表和哈希查找的方法加入SeqList.java中/除留余數(shù)法計(jì)算哈希值,構(gòu)造哈希表public void hash(int x,int y)int h = x % y;if(Integer.parseInt(el
9、ementh.toString()=0)/該位置為空,不沖突this.set(h, x);/此處為set(int x,int y)的方法,與原set方法有一定差別else/沖突hash(h+1,y);/開放地址法、線性探測再散列解決沖突/哈希查找public int hashSearch(int key,int y)int h = key % y;/計(jì)算哈希值作為下標(biāo)for(int i=1;i=y;i+)if(Integer.parseInt(elementh.toString()=0)/(0代表該位置為空)若查找位置為空,查找失敗return -1;else if(Integer.parse
10、Int(elementh.toString()=key)/若查找位置正好為key,查找成功return h;else/若查找位置有值,但不等于key,解決沖突,繼續(xù)查找h=h+i;return hashSearch(h,y);(2)Hashsearch.javapackage search;import java.util.Scanner;/* * * author pang * */public class Hashsearch public static void main(String args)SeqList list = new SeqList(12);for(int i=0;i12;i+)list.append(0);list.hash(55,11);list.hash(19,11);list.hash(31,11);list.hash(23,11);list.hash(68,11);list.hash(20,11);list.hash(27,11);list.hash(9,11);list.hash(10,11);list.hash(79,11);System.out.println(list.toString();Syst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)抵押協(xié)議書
- 人工機(jī)械合同協(xié)議書
- 裝修工程補(bǔ)充合同年
- 2025年玉樹貨運(yùn)資格證考題
- 2025年揚(yáng)州下載貨運(yùn)從業(yè)資格證模擬考試題
- 2025年山西貨運(yùn)資格考試答案
- 電商和快遞合作合同(2篇)
- 西北師范大學(xué)圖書館
- 社區(qū)服務(wù)活動(dòng)總結(jié)
- 總經(jīng)理辦公室工作計(jì)劃
- 湘美版高中美術(shù)選修:繪畫全冊課件
- 宗教地理與宗教景觀課件
- 2023年江蘇省南京市中考化學(xué)試卷2
- 2023遼寧醫(yī)藥職業(yè)學(xué)院單招數(shù)學(xué)模擬試題(附答案解析)
- 2022年武漢協(xié)和醫(yī)院醫(yī)護(hù)人員招聘考試筆試題庫及答案解析
- 2023屆江蘇省南京市聯(lián)合體市級名校中考聯(lián)考英語試題(含解析)
- 【完整版】防洪防汛應(yīng)急(含人員避險(xiǎn)轉(zhuǎn)移)預(yù)案
- 大型活動(dòng)標(biāo)準(zhǔn)化執(zhí)行手冊
- 工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)快速計(jì)算表(EXCEL)
- 甲基乙基酮2-丁酮MSDS危險(xiǎn)化學(xué)品安全技術(shù)說明書
- 【大學(xué)】擠出管材(P64)ppt課件
評論
0/150
提交評論