版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 一、實(shí)驗(yàn)?zāi)康模?、通過單鏈表來理解鏈表的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),熟練掌握線性表的存儲(chǔ)方式和一些根本的操作,如:線性表的建立、求表長操作、取元素操作、按值查找操作、插入及刪除操作等。2、將理論知識(shí)與實(shí)踐相結(jié)合,提高自己的實(shí)際動(dòng)手能力。3、通過實(shí)踐來及時(shí)發(fā)現(xiàn)自己的缺點(diǎn)與缺乏,以便為接下來更加有效的學(xué)習(xí)做鋪墊。二、實(shí)驗(yàn)內(nèi)容:1、采用頭插法或尾插法此次課程設(shè)計(jì)我們以頭插法為例建立一個(gè)單鏈表。2、對(duì)建立好的單鏈表進(jìn)行一些根本的操作,如:a.單鏈表的類型定義。b.求表長操作。c.取元素操作。d.按值查找操作。e.顯示元素操作。f.插入操作。g.刪除操作。h.顯示元素操作。 三、根本要求:軟件要求:Windo
2、ws 2003、 、Microsoft Ward 2003等。硬件要求:電腦、優(yōu)盤及其它輔助設(shè)備。四、算法設(shè)計(jì)思想:用一組任意的存儲(chǔ)單元來存放線性表中的數(shù)據(jù)元素,這組存儲(chǔ)單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至可以是零散分布在內(nèi)存中的任意位置上。為了表示線性表中的數(shù)據(jù)元素之間的前后關(guān)系,每個(gè)數(shù)據(jù)元素在存儲(chǔ)器中的結(jié)點(diǎn)除了存儲(chǔ)其根本信息外結(jié)點(diǎn)的數(shù)據(jù)域,還需附加存儲(chǔ)其前驅(qū)和后繼的位置結(jié)點(diǎn)的指針域。這樣線性表L=a1,a2,,an在存儲(chǔ)器上的n個(gè)結(jié)點(diǎn)就通過各自結(jié)點(diǎn)的指針域鏈接成一個(gè)“ 鏈子,即鏈表。如果只附加存儲(chǔ)其后繼的位置后繼指針就為單鏈表。五、算法流程圖主函數(shù)主函數(shù)開 始求表長取元素按值查找插入
3、元素刪除元素輸出建立單鏈表結(jié)束六、算法源代碼#include #include#include typedef int Status;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2#define NULL 0/*單鏈表的類型定義*/typedef struct LNode int data;struct LNode *next;LNode, *LinkList;/*頭插法建立單鏈表*/LNode *createList(int n)LNode *p;int i;LinkList L;L=(L
4、inkList)malloc(sizeof(LNode);L-next=NULL;for(i=1;i=n;i+)p=(LNode*)malloc(sizeof(LNode);cout p-data;p-next=L-next;L-next=p;return L;/*求表長操作*/int listLength(LinkList L) LNode *p=L;int j=0;while(p-next)p=p-next;j+;return j;/*取元素操作*/void getElem(LNode *L,int i) int e;LNode *p=L;int j=0;while(jnext)p=p-n
5、ext;j+;if(j=i)e=p-data;printf(取得元素為:%dn,e);else printf(無此元素n);/*按值查找*/int locateElem(LinkList L,int e)LNode *p=L-next; while(p-data!=e&p!=NULL) p=p-next;if(p-data=e)return OK;else return ERROR;/*單鏈表的插入*/int listInsert(LinkList L,int i,int e)LNode *p=L,*q;int j=0;while(jnext)p=p-next;j+;if(j=i-1)q=(L
6、Node*)malloc(sizeof(LNode);if(!q) return OVERFLOW;q-data=e;q-next=p-next;p-next=q;return OK;else return ERROR;/*單鏈表的刪除*/int listDelete(LNode* L,int i)LNode *p=L,*q;int j=0;while(jnext)p=p-next;j+;if(j=i-1&p-next)q=p-next;p-next=q-next; free(q);return OK; else return ERROR;/*顯示元素操作*/void display(LNod
7、e *L)LNode *p=L-next;while(p) printf(%d,p-data); p=p-next; /*主函數(shù)*/void main () cout* * * * * * * * * * * * *endl;cout * 1:單鏈表的建立 * endl;cout* * * * 2:求表長 * * * * * *endl;cout * 3:取元素 * * * endl;cout* * * * 4:按值查找 * * * * *endl;cout * 5:插入 * * * endl;cout* * * * 6:刪除 * * * * * *endl;cout * 7:顯示 * * *
8、 endl;cout* * * * 0:退出 * * * * * *endl;cout* * * * * * * * * * * * *endl; LNode *L; int n,flag=1,i; int h,m; while(flag) cout i;switch(i) case 0: flag=0;break; case 1: coutn, L=createList(n);break; case 2: cout求得表長為: listLength(L)endl;break; case 3: cout h, getElem(L,h);break; case 4: coutm,coutloca
9、teElem(L,m); break;case 5: coutim,cout listInsert(L,i,m)endl;break; case 6: couti,cou t listDelete(L,i)endl;break; case 7: display(L);break; default: cout輸入錯(cuò)誤,請(qǐng)重新輸入!; 七、算法運(yùn)行結(jié)果1、顯示整個(gè)鏈表的功能選擇:2、設(shè)置單鏈表的長度:3、求出并返回鏈表的長度:4、在鏈表中取出某個(gè)位置的元素并返回其值:5、給定一個(gè)值,查看鏈表中是否存在這個(gè)元素,假設(shè)存在就返回TURE(即:返回?cái)?shù)字1),反之,返回ERROR即:返回?cái)?shù)字0:6、顯示鏈表中的元素:7、在鏈表的某個(gè)位置插入元素:8、刪除鏈表中的某個(gè)元素:9、退出對(duì)鏈表的操作:10、鏈表所有功能效果圖:八、收獲及體會(huì)通過這次課程設(shè)計(jì),我們小組成員對(duì)單鏈表的根本操作都更加熟悉了、對(duì)線性存儲(chǔ)的認(rèn)識(shí)也更加深刻了。我們?cè)诮M長的領(lǐng)導(dǎo)下,認(rèn)真的完成了此次課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作冰淇淋課件
- 第七講 調(diào)用五官感受寫一寫(看圖寫話教學(xué))-一年級(jí)語文上冊(cè)(統(tǒng)編版·2024秋)
- 2024年黑龍江省龍東地區(qū)中考數(shù)學(xué)真題卷及答案解析
- 幼兒園小班音樂《狐貍和石頭》教案
- 西京學(xué)院《影像信息學(xué)與使用》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《繼電保護(hù)裝置》2022-2023學(xué)年期末試卷
- 西京學(xué)院《兒科護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《中國畫基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《新聞修辭學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《體育課程與教學(xué)論》2022-2023學(xué)年第一學(xué)期期末試卷
- 城市綜合體消防技術(shù)標(biāo)準(zhǔn) DG-TJ08-2408-2022
- 滑雪運(yùn)動(dòng)損傷的預(yù)防與處理
- 2024年四川綿陽北川縣部分事業(yè)單位面向縣內(nèi)考調(diào)43人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 科普現(xiàn)狀及科普工作思考問題
- 庫存管理的有效預(yù)警機(jī)制
- 美術(shù)展覽策劃方案
- 《簡單相信傻傻堅(jiān)持》課件-高教版中職語文職業(yè)模塊
- 溫氏蛋雞管理手冊(cè)
- 電子應(yīng)用職業(yè)生涯規(guī)劃
- 檢驗(yàn)科健康宣教課件
- 2023年四川省成都市中考英語-十二選十(專項(xiàng)練習(xí))
評(píng)論
0/150
提交評(píng)論