版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單鏈表的基本操作1.試驗(yàn)題目問(wèn)題描述:實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表的建立、求長(zhǎng)度,取元素、修改元素、插入、刪除等單鏈表的基本操作。通過(guò)代碼的編寫(xiě)理解并掌握單鏈表的過(guò)程編寫(xiě)以及作用。2.試驗(yàn)規(guī)定(1)依次從鍵盤(pán)讀入數(shù)據(jù),建立一種單鏈表并將單鏈表的初始化設(shè)置為空;(2)通過(guò)操作選擇,輸出單鏈表中的數(shù)據(jù)元素(3)顯示單鏈表的長(zhǎng)度;(4)根據(jù)指定條件可以查找出元素和修改元素;(5)實(shí)目前指定位置插入和刪除元素的功能(6)顯示操作後的成果3.算法設(shè)計(jì)(1)用到的構(gòu)造(邏輯構(gòu)造、存儲(chǔ)構(gòu)造)邏輯構(gòu)造:線性構(gòu)造存儲(chǔ)構(gòu)造:帶頭結(jié)點(diǎn)的單鏈表(2)算法設(shè)計(jì)思緒定義結(jié)點(diǎn)類型LNode,每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域data和指針域next。定義頭指針LinkList。編寫(xiě)如下函數(shù):1、createlist(LinkList&L);用尾插法創(chuàng)立一種帶頭結(jié)點(diǎn)的單鏈表。2、print(LinkListL);輸出該單鏈表中的數(shù)據(jù)元素。3、ListLength(LinkListL);求該單鏈表的長(zhǎng)度。4、GetElem(LinkList&L,inti,ElemType&e);查找第i個(gè)元素。5、SetElem(LinkList&L,inti,ElemTypem);修改第i個(gè)元素。6、ListInsert(LinkList&L,inti,ElemTypee);在第i個(gè)元素前插入一種元素。7、ListDelete(LinkList&L,inti,ElemType&e2);刪除第i個(gè)元素。8、main();通過(guò)case構(gòu)造來(lái)調(diào)用createlist(LinkList&L)、GetElem(LinkList&L,inti,ElemType&e)、SetElem(LinkList&L,inti,ElemTypem)、ListInsert(LinkList&L,inti,ElemTypee)、ListDelete(LinkList&L,inti,ElemType&e2)4.調(diào)試和測(cè)試調(diào)試過(guò)程總結(jié)通過(guò)多次調(diào)試,本程序能很好的完畢試驗(yàn)規(guī)定的各項(xiàng)功能。給出幾組測(cè)試數(shù)據(jù)及試驗(yàn)成果:4.1系統(tǒng)界面4.2創(chuàng)立帶頭結(jié)點(diǎn)的單鏈表(先輸入單鏈表整數(shù),每輸入完一種整數(shù)後按回車(chē)鍵,數(shù)據(jù)輸入完後以0結(jié)束)4.3打印鏈表中的數(shù)據(jù)4.4打印鏈表長(zhǎng)度4.5按位置取元素4.6修改鏈表中的元素4.7插入結(jié)點(diǎn)4.8按結(jié)點(diǎn)位置編號(hào)刪除結(jié)點(diǎn)4.8顯示做了修改後的鏈表元素:5.試驗(yàn)總結(jié)對(duì)比這次試驗(yàn),在上機(jī)的時(shí)候明顯感覺(jué)到比之前愈加有思緒,可以很好地找個(gè)關(guān)鍵性的語(yǔ)句對(duì)程序進(jìn)行修改,這次試驗(yàn)雖然說(shuō)比上次好,不過(guò)也暴漏出了許多的缺陷,在編寫(xiě)的時(shí)候,感覺(jué)整個(gè)流程都挺對(duì),不過(guò)就是運(yùn)行不出來(lái),或者是不可以實(shí)現(xiàn)原有的功能,通過(guò)與同學(xué)的交流,然後慢慢地參照書(shū)本才將本次試驗(yàn)很好地完畢。6.附錄(源程序)#include<stdio.h>#include<conio.h>#include"stdafx.h"#defineOK1#defineERROR0typedefcharElemType;typedefintStatus;typedefstructLNode{ElemTypedata;LNode*next;}LNode,*LinkList;Statuscreatelist(LinkList&L)//尾插法創(chuàng)立帶頭結(jié)點(diǎn)的單鏈表{intch;L=newLNode;L->next=NULL; printf("請(qǐng)輸入單鏈表中的數(shù)據(jù):"); scanf("%d",&ch);LinkListr=L; while(ch!=0){LinkListp=newLNode;p->data=ch;p->next=NULL;r->next=p;r=p; scanf("%d",&ch);}returnOK;}voidprint(LinkListL)//輸出單鏈表{LinkListp=L->next;printf("單鏈表為:\n"); while(p){printf("%2d",p->data);p=p->next;}}StatusListLength(LinkListL)//求單鏈表的長(zhǎng)度{intk=0; LinkListp=L->next;while(p){ k++; p=p->next;} printf("\n"); printf("單鏈表的長(zhǎng)度為%d:",k); printf("\n"); returnk;}StatusGetElem(LinkList&L,inti,ElemType&e){LinkListp=newLNode; p=L->next;intj=1; while(p&&j<i) {p=p->next;j++; }//順指針向後查找,直至p指到第i個(gè)結(jié)點(diǎn)或p為空止 if(!p||j<i) returnERROR;//第i個(gè)結(jié)點(diǎn)不存在 e=p->data; printf("第%2d個(gè)元素為:%2d\n",i,e); printf("\n"); returnOK;}StatusSetElem(LinkList&L,inti,ElemTypem){LinkListp=newLNode; p=L->next;intj=1; while(p&&j<i) {p=p->next;j++; }//順指針向後查找,直至p指到第i個(gè)結(jié)點(diǎn)或p為空止 if(!p||j<i) returnERROR;//第i個(gè)結(jié)點(diǎn)不存在 p->data=m; printf("\n"); printf("第%2d個(gè)元素修改為:%2d\n",i,m); printf("\n"); returnOK;}StatusListInsert(LinkList&L,inti,ElemTypee){LinkListp=newLNode;p=L;intj=0; while(p&&j<i-1) {p=p->next;++j; }//令指針p指向第i-1個(gè)結(jié)點(diǎn) if(!p||j>i-1) returnERROR;//i不不小于1或者不小于表長(zhǎng)+1 LinkLists=newLNode; if(!s)returnERROR;//存儲(chǔ)空間分派失敗 s->data=e; s->next=p->next; p->next=s;printf("\n"); printf("在第%2d個(gè)位置插入元素:%2d\n",i,e); printf("\n"); returnOK;}StatusListDelete(LinkList&L,inti,ElemType&e2){LinkListp=L;intj=0; LinkListq; while(p->next&&j<i-1) {p=p->next;++j;//尋找第i個(gè)節(jié)點(diǎn),并另p指向其前驅(qū) } if(!p->next||j>i-1) returnERROR;//刪除位置不合理 else q=p->next;p->next=q->next;//修改指針 e2=q->data;printf("刪除了第%2d個(gè)元素:%d\n",i,e2); printf("\n"); deleteq;//釋放節(jié)點(diǎn)空間 returnOK;}intscan(){intd;printf("1.創(chuàng)立帶頭結(jié)點(diǎn)的單鏈表\n");printf("2.打印連表中的數(shù)據(jù)\n");printf("3.打印鏈表長(zhǎng)度\n");printf("4.按位置取元素\n");printf("5.修改鏈表中的元素\n");printf("6.插入結(jié)點(diǎn)\n");printf("7.按結(jié)點(diǎn)位置編號(hào)刪除結(jié)點(diǎn)\n");printf("其他鍵退出......\n");printf("\n請(qǐng)選擇所要進(jìn)行的操作\n");scanf("%d",&d);return(d);}voidmain(){printf("建立單鏈表,請(qǐng)先輸入單鏈表整數(shù),每輸入完一種整數(shù)後按回車(chē)鍵,數(shù)據(jù)輸入完後以0結(jié)束"); printf("\n");LinkListL; ElemTypee;ElemTypee2; intquit=0; inti1,i2,i3,i4,m,n;while(!quit){switch(scan()){case1:createlist(L);printf("\n\n單鏈表已創(chuàng)立!\n\n");break;case2:print(L); printf("\n\n"); break;case3:ListLength(L); printf("\n\n"); break;case4:printf("請(qǐng)輸入要查找的元素的位置\n\n");scanf("%d",&i1);GetElem(L,i1,e);;break;case5:printf("請(qǐng)輸入要修改的元素的位置\n");scanf("%d",&i2); printf("請(qǐng)輸入要修改的元素的值\n");scanf("%d",&m);SetElem(L,i2,m);break;case6:p
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版特色餐飲店鋪出租管理協(xié)議3篇
- 2025版小額貸款抵押合同財(cái)務(wù)報(bào)告披露要求3篇
- 買(mǎi)賣(mài)合同糾紛代理詞3篇
- 二零二五版薦知識(shí)產(chǎn)權(quán)擔(dān)保交易合同集3篇
- 二零二五年度城市通勤車(chē)輛出租合作協(xié)議4篇
- 二零二五年度員工借款爭(zhēng)議調(diào)解及勞動(dòng)法執(zhí)行合同
- 二零二五年度農(nóng)業(yè)OEM產(chǎn)品種植與加工合同范本3篇
- 二零二五年度工業(yè)廠房租賃市場(chǎng)拓展合同范本3篇
- 二零二五年度光伏充電樁場(chǎng)地共享租賃合同3篇
- 2025年度倉(cāng)儲(chǔ)物流零星維修施工合同協(xié)議書(shū)3篇
- 湖北省黃石市陽(yáng)新縣2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末考試題 含答案
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報(bào)告
- 央視網(wǎng)2025亞冬會(huì)營(yíng)銷方案
- 《00541語(yǔ)言學(xué)概論》自考復(fù)習(xí)題庫(kù)(含答案)
- 《無(wú)砟軌道施工與組織》 課件 第十講雙塊式無(wú)砟軌道施工工藝
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測(cè)試+英語(yǔ)+ 含答案
- 2024新版《藥品管理法》培訓(xùn)課件
- 《阻燃材料與技術(shù)》課件 第7講 阻燃橡膠材料
- 爆炸物運(yùn)輸安全保障方案
- 江蘇省南京市2025屆高三學(xué)業(yè)水平調(diào)研考試數(shù)學(xué)試卷(解析版)
- 2024年黑龍江省哈爾濱市中考數(shù)學(xué)試卷(附答案)
評(píng)論
0/150
提交評(píng)論