數(shù)據(jù)結(jié)構(gòu) 單鏈表操作驗(yàn)證_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu) 單鏈表操作驗(yàn)證_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu) 單鏈表操作驗(yàn)證_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu) 單鏈表操作驗(yàn)證_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu) 單鏈表操作驗(yàn)證_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 單鏈表操作驗(yàn)證一、實(shí)驗(yàn)?zāi)康?理解數(shù)據(jù)結(jié)構(gòu)中帶頭結(jié)點(diǎn)單鏈表的定義和邏輯圖表示方法。2掌握單鏈表中結(jié)點(diǎn)結(jié)構(gòu)的C+描述。3熟練掌握單鏈表的插入、刪除和查詢(xún)算法的設(shè)計(jì)與C+實(shí)現(xiàn)。4熟練掌握簡(jiǎn)單的演示菜單與人機(jī)交互設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容1 編制一個(gè)演示單鏈表插入、刪除、查找等操作的程序。三、實(shí)驗(yàn)步驟1需求分析本演示程序用VC+編寫(xiě),完成單鏈表的生成,任意位置的插入、刪除,以及確定某一元素在單鏈表中的位置。 輸入的形式和輸入值的范圍:插入元素時(shí)需要輸入插入的位置和元素的值;刪除元素時(shí)輸入刪除元素的位置;查找操作時(shí)需要輸入元素的值。在所有輸入中,元素的值都是整數(shù)。 輸出的形式:在所有三種操作中都顯示

2、操作是否正確以及操作后單鏈表的內(nèi)容。其中刪除操作后顯示刪除的元素的值,查找操作后顯示要查找元素的位置。 程序所能達(dá)到的功能:完成單鏈表的生成(通過(guò)插入操作)、插入、刪除、查找操作。 測(cè)試數(shù)據(jù):A 建立操作中依次輸入1,2,3,4,5,生成一個(gè)單鏈表B插入操作中依次輸入6,插入單鏈表C查找操作中依次輸入2,返回這,1個(gè)元素在單鏈表中的位 D. 刪除操作中依次輸入1,刪除位于1的元素 2概要設(shè)計(jì)1)基本操作:struct stu *creat()操作結(jié)果:構(gòu)造一單鏈表Struct stu *ins(struct stu *head)初始條件:?jiǎn)捂湵硪汛嬖诓僮鹘Y(jié)果:插入元素Struct stu *d

3、el(struct stu *head)初始條件:?jiǎn)捂湵硪汛嬖诓僮鹘Y(jié)果:刪除元素Void find(struct stu *head)初始條件:?jiǎn)捂湵鞮已存在操作結(jié)果:查找元素Void output(struct stu *head) 初始條件:?jiǎn)捂湵鞮已存在操作結(jié)果:輸出元素 Void main() 主函數(shù)2)本程序包含6個(gè)函數(shù): 主函數(shù)main()顯示單鏈表內(nèi)容函數(shù) output()建立元素函數(shù) creat()插入元素函數(shù)ins()刪除元素函數(shù)del()查找元素函數(shù)find()主函數(shù)控制五個(gè)函數(shù): outputcreatinsdelfindmain 3詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)

4、類(lèi)型,對(duì)每個(gè)操作給出偽碼算法。對(duì)主程序和其他模塊也都需要寫(xiě)出偽碼算法。1) 結(jié)點(diǎn)類(lèi)型和指針類(lèi)型 struct stu int num; char name20 float Chinese,maths,English;struct stu *next;2) 單鏈表的基本操作Void output(struct stu *head)(偽碼算法)Struct stu *creat()(偽碼算法)Struct stu *ins(struct stu *head)(偽碼算法)Struct stu *del(struct stu *head)(偽碼算法)Void find(struct stu *head

5、)(偽碼算法)Void main()(偽碼算法) 4程序源碼 #include#include#include#define NULL 0#define LEN sizeof(struct stu)struct stuint num;char name20; float Chinese,maths,English; struct stu *next;int n;void output(struct stu *head)struct stu *p; p=head;printf(學(xué)號(hào)t姓名t語(yǔ)文t數(shù)學(xué)t英語(yǔ)tn); for(p=head;p!=NULL;p=p-next) printf(%dt%s

6、t%.1ft%.1ft%.1fn,p-num,p-name,p-Chinese,p-maths,p-English);struct stu *creat() struct stu *head;struct stu *p1,*p2; n=0; printf(學(xué)號(hào),姓名,語(yǔ)文,數(shù)學(xué),英語(yǔ):n); printf(輸入 0 0 0 0 0 停止!n); p1=p2=(struct stu*)malloc(LEN); scanf(%d%s%f%f%f,&p1-num,p1-name,&p1-Chinese,&p1-maths,&p1-English); head=NULL;while(p1-num!=0

7、)n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1; p1=(struct stu*)malloc(LEN); scanf(%d%s%f%f%f,&p1-num,p1-name,&p1-Chinese,&p1-maths,&p1-English);p2-next=NULL; return(head);struct stu *ins(struct stu *head)struct stu *p0,*p1,*p2; printf(請(qǐng)輸入插入的學(xué)生信息:n); p1=head; p0=creat();if(head=NULL)head=p0;p0-next=NUL

8、L;elsewhile(p0-nump1-num)&(p1-next!=NULL)p2=p1; p1=p1-next;if(p0-numnum)if(head=p1) head=p0;else p2-next=p0;p0-next=p1;elsep1-next=p0;p0-next=NULL;n=n+1; return(head);struct stu *del(struct stu *head)struct stu *p1,*p2; int num;if(head=NULL)printf(n鏈表為空!n);elsep1=head; printf(請(qǐng)輸入所需刪除號(hào)碼:n); scanf(%d,

9、&num); while(num!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;if(num=p1-num)if(p1=head) head=p1-next; elsep2-next=p1-next; printf(刪除:%dn,num); n=n-1;elseprintf(對(duì)不起,%d不在鏈表中! n,num);return(head);void find(struct stu *head)struct stu *p1; int num; printf(請(qǐng)輸入所需查找號(hào)碼:n); scanf(%d,&num);if(head=NULL)printf(n鏈表為空

10、!n);elsep1=head; while(num!=p1-num&p1-next!=NULL)p1=p1-next;if(num=p1-num)printf(學(xué)號(hào):%d 姓名:%s 語(yǔ)文:%.1f 數(shù)學(xué):%.1f 英語(yǔ):%.1fn,p1-num,p1-name,p1-Chinese,p1-maths,p1-English);elseprintf(對(duì)不起,%d不在鏈表中!n,num);void main()struct stu *head; int select; while(1) printf(1.建立 2.插入 3.刪除 4.查找 5.輸出 6.退出 n); printf(請(qǐng)輸入操作序號(hào)

11、:n); scanf(%d,&select); switch(select) case 1: head=creat();break; case 2: head=ins(head);break; case 3: head=del(head);break; case 4: find(head);break; case 5: output(head);break; case 6: exit(0); 5調(diào)試分析在往電腦中輸入程序時(shí),由于馬虎,有的落了標(biāo)點(diǎn)符號(hào),有的落了或?qū)戝e(cuò)了字母,有的語(yǔ)句也出現(xiàn)了錯(cuò)誤,終于將它們一一修正過(guò)來(lái)。6使用說(shuō)明程序名為L(zhǎng)inkList.exe,運(yùn)行環(huán)境為Visual C+。程序執(zhí)行后顯示1.建立 2.插入 3.刪除 4.查找 5.輸出 6.退出請(qǐng)輸入操作序號(hào): 然后輸入數(shù)字選擇執(zhí)行不同的功能。要求首先輸入足夠多的插入元素,才可以進(jìn)行其他的操作。每執(zhí)行一次功能,就會(huì)顯示執(zhí)行的結(jié)果(正確或錯(cuò)誤)以及執(zhí)行后單鏈表的內(nèi)容。選擇1:顯示“學(xué)號(hào),姓名,語(yǔ)文,數(shù)學(xué),英語(yǔ):輸入 0 0 0 0 0 停止!”要求輸入足夠多的元素。選擇2:顯示“請(qǐng)輸入插入的學(xué)生信息: ”要求輸入要插入的位置和元素

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論