數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告內(nèi)容模板_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告內(nèi)容模板_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告內(nèi)容模板_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告內(nèi)容模板_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

閩江學(xué)院軟件學(xué)院實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱典型數(shù)據(jù)結(jié)構(gòu)算法實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)單鏈表插入、刪除和查詢演示程序?qū)I(yè)班級(jí)07可視化姓名學(xué)號(hào)指導(dǎo)教師成績(jī)?nèi)掌?007-?-?一、實(shí)驗(yàn)?zāi)康?.理解數(shù)據(jù)結(jié)構(gòu)中帶頭結(jié)點(diǎn)單鏈表的定義和邏輯圖表示方法。2.掌握單鏈表中結(jié)點(diǎn)結(jié)構(gòu)的C++描述。3.熟練掌握單鏈表的插入、刪除和查詢算法的設(shè)計(jì)與C++實(shí)現(xiàn)。4.熟練掌握簡(jiǎn)單的演示菜單與人機(jī)交互設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容編制一個(gè)演示單鏈表插入、刪除、查找等操作的程序。三、實(shí)驗(yàn)步驟1.需求分析本演示程序用VC++編寫,完成單鏈表的生成,任意位置的插入、刪除,以及確定某一元素在單鏈表中的位置。

①輸入的形式和輸入值的范圍:插入元素時(shí)需要輸入插入的位置和元素的值;刪除元素時(shí)輸入刪除元素的位置;查找操作時(shí)需要輸入元素的值。在所有輸入中,元素的值都是整數(shù)。

②輸出的形式:在所有三種操作中都顯示操作是否正確以及操作后單鏈表的內(nèi)容。其中刪除操作后顯示刪除的元素的值,查找操作后顯示要查找元素的位置。

③程序所能達(dá)到的功能:完成單鏈表的生成(通過(guò)插入操作)、插入、刪除、查找操作。

④測(cè)試數(shù)據(jù):

A.插入操作中依次輸入11,12,13,14,15,16,生成一個(gè)單鏈表

B.查找操作中依次輸入12,15,22返回這3個(gè)元素在單鏈表中的位置

C.刪除操作中依次輸入2,5,刪除位于2和5的元素2.概要設(shè)計(jì)1)為了實(shí)現(xiàn)上述程序功能,需要定義單鏈表的抽象數(shù)據(jù)類型:

ADTLinkList{

數(shù)據(jù)對(duì)象:D={ai|ai∈IntegerSet,i=0,1,2,…,n,n≥0}

數(shù)據(jù)關(guān)系:R={<ai,ai+1>|ai,ai+1∈D}

基本操作:

InitLinkList(&L)

操作結(jié)果:構(gòu)造一個(gè)空的單鏈表L.

InsLinkList(&L,pos,e)

初始條件:?jiǎn)捂湵鞮已存在

操作結(jié)果:將元素e插入到單鏈表L的pos位置

DelLinkList(&L,pos,&e)

初始條件:?jiǎn)捂湵鞮已存在

操作結(jié)果:將單鏈表L中pos位置的元素刪除,元素值置入e中返回

LocLinkList(L,e)

初始條件:?jiǎn)捂湵鞮依存在

操作結(jié)果:?jiǎn)捂湵鞮中查找是否元素e,若存在,返回元素在表中的位置;若不存

在,返回-1.

Menu()

操作結(jié)果:在屏幕上顯示操作菜單

}2)本程序包含7個(gè)函數(shù):

①主函數(shù)main()

②初始化單鏈表函數(shù)InitLinkList()

③顯示操作菜單函數(shù)menu()

④顯示單鏈表內(nèi)容函數(shù)dispLinkList()

⑤插入元素函數(shù)InsLinkList()

⑥刪除元素函數(shù)DelLinkList()

⑦查找元素函數(shù)LocLinkList()各函數(shù)間關(guān)系如下:

3.詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對(duì)每個(gè)操作給出偽碼算法。對(duì)主程序和其他模塊也都需要寫出偽碼算法。

1)結(jié)點(diǎn)類型和指針類型

typedefstructnode{

intdata;

structnode*next;

}Node,*LinkListl;2)單鏈表的基本操作為了方便,在單鏈表中設(shè)頭結(jié)點(diǎn),其data域沒有意義。boolInitLinkList(LinkList&L)

(偽碼算法)

voidDispLinkList(LinkListL)

(偽碼算法)

voidmenu()

(偽碼算法)

boolInsLinkList(LinkList&L,intpos,inte)

(偽碼算法)

boolDelLinkList(LinkList&L,intpos,int&e)

(偽碼算法)

intLocLinkList(LinkListL,inte)

(偽碼算法)3)其他模塊偽碼算法4.調(diào)試分析

(略)5.使用說(shuō)明程序名為L(zhǎng)inkList.exe,運(yùn)行環(huán)境為DOS。程序執(zhí)行后顯示

========================

0----EXIT

1----INSERT

2----DELETE

3----LOCATE

=======================

SELECT:在select后輸入數(shù)字選擇執(zhí)行不同的功能。要求首先輸入足夠多的插入元素,才可以進(jìn)行其他的操作。每執(zhí)行一次功能,就會(huì)顯示執(zhí)行的結(jié)果(正確或錯(cuò)誤)以及執(zhí)行后單鏈表的內(nèi)容。選擇0:退出程序

選擇1:顯示“INSERTpos,e=”,

要求輸入要插入的位置和元素的值(都是整數(shù))。

選擇2:顯示“DELETEpos=”,

要求輸入要?jiǎng)h除元素的位置,執(zhí)行成功后返回元素的值。

選擇3:顯示“LOCATEe=”,

要求輸入要查找元素的值,執(zhí)行成功后返回元素在表中的位置6.測(cè)試結(jié)果1)建立單鏈表:

?選擇1,分別輸入(0,11),(0,12),(0,13),(0,14)(0,15)。得到單鏈表(15,14,13,12,11)

2)插入:

?選擇1輸入(1,100),得到單鏈表(15,100,14,13,12,11)

?選擇1輸入(-1,2),顯示輸入錯(cuò)誤

?選擇1輸入(7,2),顯示輸入錯(cuò)誤

?選擇1輸入(6,2),得到單鏈表(15,100,14,13,12,11,2)

3)刪除:

?選擇2,輸入1。返回e=100,得到單鏈表(15,14,13,12,11,2)

?選擇2,輸入0。返回e=15,得到單鏈表(1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論