《數(shù)據(jù)結構》實驗指導_第1頁
《數(shù)據(jù)結構》實驗指導_第2頁
《數(shù)據(jù)結構》實驗指導_第3頁
《數(shù)據(jù)結構》實驗指導_第4頁
《數(shù)據(jù)結構》實驗指導_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

《數(shù)據(jù)結構》實驗指導

實驗八:查找方法的實現(xiàn)

一、實驗目的

1、掌握查找的基本概念。

2、掌握線性表的查找方法。

3、掌握樹表的查找方法。

4、了解哈希表的查找方法

二'實驗學時

2學時

三'實驗類型

綜合性實驗

四、實驗需求

1、硬件

每位學生配備計算機一臺;

2、軟件

WindowsXP/Windows7操作系統(tǒng);開發(fā)工具軟件:MicrosoftVisualStudio2010。

五'實驗理論與預備知識

1、查找的基本概念。

2、線性表的查找方法。

3、樹表的查找方法。

4、哈希表的查找方法

六'實驗任務

1、順序查找和折半查找的代碼實現(xiàn)

2、編寫應用程序,用相關數(shù)據(jù)驗證運算算法

七'實驗內(nèi)容及步驟

任務:代碼實現(xiàn)順序表的創(chuàng)建、顯示、查找;編寫應用程序,用相關數(shù)據(jù)驗證運算算法。

實驗步驟:

(1)啟動VisualStudio2010,創(chuàng)建窗體應用程序。

(2)創(chuàng)建順序表的存儲結構,包括創(chuàng)建、顯示、查找等方法,代碼參考如下:

structRecType〃記錄類型

publicintkey;〃存放關鍵字

publicstringdata;〃存放其他數(shù)據(jù)

)

classSqListSearchClass

(

constintMaxSize=100;〃順序表中最多元素個數(shù)

publicRecType[]R;〃順序表

publicintlength;〃存放順序表的長度

stringsstr;〃用于返回結果

publicSqListSearchClass()〃構造函數(shù),用于順序表的初始化

(

R=newRecType[MaxSize];

length=0;

)

//...........順序表的基本運算算法

publicvoidCreateList(string[]split)〃由split中的元素建立順序表

inti;

for(i=0;i<split.Length;i++)

R[i].key=Convert.ToInt32(split[i]);

length=i;

publicstringDispList()〃將順序表L中的所有元素構成一個字符串返回

(

inti;

if(length>0)

(

stringmystr=R[0].key.ToString();

for(i=1;i<length;i++)〃掃描順序表中各元素值

mystr+=""+R[i].key.ToString();

returnmystr;

elsereturn"空串

)

//.............各種查找算法.......

publicintSeqSearch(intk,refintcn)〃順序查找算法

{

inti=0;

cn=0;〃統(tǒng)計關鍵字比較次數(shù)

while(i<length&&R[i].key!=k)〃從表頭往后找

(

cn++;

i++;

)

if(i>=length)〃未找到返回0

return0;

else

{

cn++;

returni+1;〃找到返回邏輯序號i+1

(3)通過一串整數(shù)的輸入,創(chuàng)建數(shù)據(jù)元素為整數(shù)的順序表,顯示順序表,實現(xiàn)查找操作。

設計界面,參考如下:

9Fond□0B

操作步豢”建立感序表

洽入關催字序列:

2,6,749,1,5,3,8,0

建立順序表

例如給入:3,8,2,4.最多不超過100個元素

操作步驟2-輸出J*序表

輸出順序表2674915380

操作步驟3-查找最大元素和最小元素

查找最大元素:9最小元素:0

操作步驟3-查找指定元素是否存在

查找元素:7查找

該元素為順序表中的第3個元素,比較了3次.

(4)編寫窗體中按鈕等控件的代碼,調(diào)用循環(huán)順序隊列類,參考如下:

SqListSearchClassL=newSqListSearchClass();

privatevoidForml_Load(objectsender,EventArgse)

(

textBoxl.Text="2,6,7,4,9J,5,3,8,0”;

)

privatevoidbuttonl_Click(objectsender,EventArgse)

{

stringstr=textBoxl.Text.Trim。;

if(str==

infolabel.Text="操作提示:必須輸入關鍵字序列”;

else

{

string[]split=str.Split(\');

L.CreateList(split);

if(L.length<=3)

infolabel.Text=”操作提示:輸入的關鍵字個數(shù)太少”;

return;

}

)

}

privatevoidbutton2_Click(objectsender,EventArgse)

(

textBoxl.Text=L.DispListO;

infolabel.Text=”操作提示:待查找的數(shù)據(jù)顯示完畢”;

)

privatevoidbutton3_Click(objectsender,EventArgse)〃求順序表中的最大值

和最小值

(

)

privatevoidbutton4_Click(objectsender,EventArgse)

(

intnum=int.Parse(textBox6.Text);

inta=0;

intp=L.SeqSearch(num,refa);

if(p==0)

infolabel.Text="進行了"+a+”比較,該元素不存在!]

else

infolabel.Text="該元素為順序表中的第“+p+”個元素,比較了“+a+”次。

??.

)

(5)調(diào)試運行,并觀察運行情況。

(6)在類中增加查找最大值最小值的方法:publicvoidM

溫馨提示

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

評論

0/150

提交評論