驗(yàn)證2_線性表子系統(tǒng)_第1頁(yè)
驗(yàn)證2_線性表子系統(tǒng)_第2頁(yè)
驗(yàn)證2_線性表子系統(tǒng)_第3頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1實(shí)驗(yàn)容或題目(1) 用結(jié)構(gòu)體描述一個(gè)字符型的單向鏈表。(2) 創(chuàng)建線性表;在線性表中插入元素、刪除元素;顯示線性表中所有元素的基本操作。(3) 用if語(yǔ)句設(shè)計(jì)一個(gè)選擇式菜單。線性表子系統(tǒng)*1建表*2插入*3刪除*4顯示*5查找*6求表長(zhǎng)*0返回*2、實(shí)驗(yàn)?zāi)康呐c要求(1) 掌握線性表的特點(diǎn);(2) 掌握線性表順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本運(yùn)算;(3) 掌握線性表的創(chuàng)建,插入,刪除和顯示線性表中元素的基本操作。3、實(shí)驗(yàn)步驟與源程序?qū)嶒?yàn)步驟首先構(gòu)建出各個(gè)函數(shù)在主調(diào)函數(shù)main()函數(shù)中的作用以及返回值:CreatList()函數(shù)是用來(lái)建立線性表,In sList()函數(shù)用來(lái)插入結(jié)點(diǎn)元素,DelL

2、ist()函數(shù)用來(lái)刪除結(jié)點(diǎn)元素,ShowList()函數(shù)用來(lái)顯示線性表,SearchList()函數(shù)用來(lái)查找線性表元素,主函數(shù)main()用于菜單界面,方便操作。之后便是具體實(shí)現(xiàn)每個(gè)函數(shù)功能的細(xì)節(jié)。程序編好后經(jīng)過(guò)不斷地差錯(cuò)改錯(cuò),最后得到正確的源程序。程序源代碼#in clude<stdio.h>#in clude<malloc.h>typedef struct linknodechar data;struct linknode *n ext;li nno de;linnode *head;int n;void CreateList()linnode *p,*s;int乙

3、charx;n=0;z=1;head=(li nnode *)malloc(sizeof(li nno de);p=head;printf("ntt請(qǐng)逐個(gè)輸入節(jié)點(diǎn),以x'為結(jié)束標(biāo)記!n");prin tf("n ”);while(z)prin tf("tt輸入一個(gè)字符數(shù)據(jù),并按回車: ");scan f("%c", &x);getchar();if(x!='x')s=(l innode *)malloc(sizeof(li nno de);n+;s->data=x;p_>n ext

4、=s;s-> next=NULL;p=s;else z=0;void In sList(i nt i,char x)linnode *s,*p;int j;p=head;j=10;while(p!=NULL&&j<i)j+;p=p->n ext;if(p!=NULL)s=(l innode *)malloc(sizeof(li nno de);s->data=x;s->n ext=p->n ext;p_>n ext=s;n+;else prin tf("ntt線性表為空或插入位置超出!n ”);void DelList(cha

5、r x)linnode *p,*q;if(head=NULL)prin tf("ntt鏈表下溢!”);return;if(head-> next=NULL)prin tf("ntt線性表已為空!”); return;q=head;p=head->n ext;while(p!=NULL&&p->data!=x)q=p;p=p->n ext;if(p!=NULL)q_>n ext=p->n ext;free(p);n-;printf("ntt結(jié)點(diǎn) c已經(jīng)被刪除!",x);else prin tf("

6、;ntt抱歉!沒有找到您要?jiǎng)h除的結(jié)點(diǎn)。");void ShowList()linnode *p=head;prin tf("ntt顯示線性表的所有元素:”);if(head-> next=NULL|p=NULL)prin tf("ntt鏈表為空! ”);elseprin tf("ntt");while(p-> next!=NULL)prin tf("%5c",p-> next->data);p=p->n ext;void SearchList(char x)linnode *p;int i=1;

7、if(head=NULL)prin tf("ntt鏈表下溢! ”);return;if(head-> next=NULL)prin tf("ntt線性表為空,沒有任何節(jié)點(diǎn)!”);return;p=head->n ext;while(p!=NULL&&p->data!=x)p=p->n ext;i+;if(p!=NULL)printf("ntt在表的第d位上找到值為咄勺結(jié)點(diǎn)! ”,i,x);elseprin tf("ntt抱歉!未找到值為。的結(jié)點(diǎn)! ",x);void mai n()int choice,i

8、,j;char x;head=NULL;j=1;while(j) prin tf("n");prin tf("ntt線性表子系統(tǒng)");printf("ntt*");prin tf("ntt*1建表*"prin tf("ntt*2插入*"prin tf("ntt*3刪除*"prin tf("ntt*4顯示*"prin tf("ntt*5查找*"prin tf("ntt*6求表長(zhǎng)*"prin tf("ntt*0

9、返回*"prin tf("ntt*);prin tf("ntt請(qǐng)選擇菜單號(hào)(0-6 ):");sea nf("%d",&choice);getchar();if(choice=1)CreateList();elseif(choice=2) printf("ntt請(qǐng)輸入插入的位置i和插入的數(shù)據(jù)(輸入格式:i,x ):");scan f("%d,%c",&i,& x);In sList(i,x);else請(qǐng)輸入要?jiǎng)h除的數(shù)值:");if(choice=3) prin

10、tf("ntt scan f("%c", &x); DelList(x);elseif(choice=4)if(head=NULL)prin tf("nttelseShowList();else if(choice=5) prin tf("ntt scan f("%c", &x); SearchList(x);elseif(choice=6) prin tf("ntt elseif(choice=0) j=0;elseprin tf("ntt 4、測(cè)試數(shù)據(jù)與實(shí)驗(yàn)結(jié)果請(qǐng)先建立線性表!&quo

11、t;);請(qǐng)輸入要查找的元素:");線性表長(zhǎng)度為:%d", n);輸入錯(cuò)誤!請(qǐng)重新輸入!");K MKMMMMMH MMMMM KKHMMEMM3< X 3< M M M X M K X KM請(qǐng)選捋菜單號(hào)(«-t): 1i懿個(gè)輸入節(jié)點(diǎn),以.Y苗結(jié)克標(biāo)訃tiin 芥FFF#芥 數(shù)數(shù)敎數(shù) SSI 宀HHX£丈子 txx?vL L L- «L- - L . L /人認(rèn)入八人 .4即“ 一 用 j 用 3 - 41 31 - SI夷入除示ft長(zhǎng)回話刪醫(yī)求癒 -諳選擇菜單號(hào)竹一= 4顯示銭性表的所有元素;awe r y圖一建立一個(gè)線性

12、表踐性表亍系紙+<i*211* 3刪* 4晁M-召求喪丈tt'底 回謹(jǐn)選澤菓單號(hào)().2ItttAffi入的位戲和插入的數(shù)據(jù)(輸人略式:5 : 2-E«陰?kù)`長(zhǎng)回 裘wffi刪顯査求返-線性表子系絨顯示線性表的所有元素:z q w e I* y圖二線性表數(shù)據(jù)的插入回SA®不找長(zhǎng)回 表建插刪S杏一衣返 -諳選澤榮單號(hào)(I). 3請(qǐng)輸入要?jiǎng)h除的教值:= 結(jié)點(diǎn)衛(wèi)經(jīng)被刪除!或性表亍系統(tǒng)吏除菠長(zhǎng)回 建S刪品查求返 -*諳選擇菓單號(hào)(fi-t) . 4顯示線性表的所有元素;n w e r y圖三線性表數(shù)據(jù)的刪除1Hi請(qǐng)選擇乗單號(hào)(B-0 ; 5 清輸入更查找的元素:q 枉表

13、的第i位上扶到值為的結(jié)點(diǎn)!圖四 線性表數(shù)據(jù)的查找I'二 二 二 二 二a暑求返請(qǐng)選擇菜單號(hào)(0-O ; 6詵性壬十箕A F圖五求表長(zhǎng)J. 1-r -I i_rxj j i-ii-rPressany key to continue責(zé)除乘長(zhǎng)回 表建播刪昱杏一求返-圖六返回5、結(jié)果分析與實(shí)驗(yàn)體會(huì)在學(xué)過(guò)本節(jié)有關(guān)線性表的兩種存儲(chǔ)結(jié)構(gòu)的基礎(chǔ)操作后,做這個(gè)驗(yàn)證性的實(shí)驗(yàn)的焦 點(diǎn)便在于驗(yàn)證各種操作的正確與否,在對(duì)照書上的線性表基本運(yùn)算的實(shí)現(xiàn)的算法 思路和注意事項(xiàng),結(jié)合老師上課強(qiáng)調(diào)的每種算法的注意重點(diǎn),找出了原始程序的幾個(gè)主要的錯(cuò)誤點(diǎn):1某些地方運(yùn)用了 C+語(yǔ)言而不是C,如:每個(gè)函數(shù)在為申請(qǐng)一塊LinkNode類型的 存儲(chǔ)單元的操作,并將其地址復(fù)制給變量時(shí):p=new LinkNod

溫馨提示

  • 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)論