鏈表基本操作實(shí)驗(yàn)報(bào)告

鏈表基本操作實(shí)驗(yàn)報(bào)告

ID:37412314

大?。?11.00 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2019-05-23

鏈表基本操作實(shí)驗(yàn)報(bào)告_第1頁(yè)
鏈表基本操作實(shí)驗(yàn)報(bào)告_第2頁(yè)
鏈表基本操作實(shí)驗(yàn)報(bào)告_第3頁(yè)
鏈表基本操作實(shí)驗(yàn)報(bào)告_第4頁(yè)
鏈表基本操作實(shí)驗(yàn)報(bào)告_第5頁(yè)
資源描述:

《鏈表基本操作實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、..實(shí)驗(yàn)2鏈表基本操作實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.定義單鏈表的結(jié)點(diǎn)類型。2.熟悉對(duì)單鏈表的一些基本操作和具體的函數(shù)定義。3.通過(guò)單鏈表的定義掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)。二、實(shí)驗(yàn)內(nèi)容與要求該程序的功能是實(shí)現(xiàn)單鏈表的定義和主要操作。如:?jiǎn)捂湵斫?、輸出、插入、刪除、查找等操作。該程序包括單鏈表結(jié)構(gòu)類型以及對(duì)單鏈表操作的具體的函數(shù)定義和主函數(shù)。程序中的單鏈表(帶頭結(jié)點(diǎn))結(jié)點(diǎn)為結(jié)構(gòu)類型,結(jié)點(diǎn)值為整型。要求:同學(xué)們可參考指導(dǎo)書實(shí)驗(yàn)2程序、教材算法及其他資料編程實(shí)現(xiàn)單鏈表相關(guān)操作。必須包括單鏈表創(chuàng)建、輸出、插入、刪除操作,其他操作根據(jù)個(gè)人情況增減。三、算法分析與設(shè)計(jì)

2、。1.創(chuàng)建單鏈表:LinkedListLinkedListCreat()創(chuàng)建鏈表函數(shù)LinkedListL=LinkedListInit(),p,r;調(diào)用初始化鏈表函數(shù)r=L;r指向頭結(jié)點(diǎn)使用malloc函數(shù)動(dòng)態(tài)分配存儲(chǔ)空間,指針p指向新開(kāi)辟的結(jié)點(diǎn),并將元素存放到新開(kāi)辟結(jié)點(diǎn)的數(shù)據(jù)域,p=(LinkedList)malloc(sizeof(LNode));p->data=x;r->next=p;將新的結(jié)點(diǎn)鏈接到頭結(jié)點(diǎn)r之后r=p;r指向p結(jié)點(diǎn)scanf("%d",&x);滿足條件循環(huán)輸入鏈表元素while(x!=flag)當(dāng)輸入不為-1時(shí)循環(huán)r->ne

3、xt=NULL;returnL;將鏈表結(jié)尾賦空值,返回頭結(jié)點(diǎn)L^頭結(jié)點(diǎn)LA1A2L^An.........2.單鏈表插入voidLinkedListInsert(LinkedListL,inti,ElemTypex)鏈表插入函數(shù)(L頭指針,i插入位置,x插入元素)LinkedListp,s;定義結(jié)構(gòu)體類型指針p,sj=1;p=L;定義整型j計(jì)數(shù),尋找插入位置,p指針指向頭結(jié)點(diǎn)p=p->next;j++;滿足條件時(shí)p指針后移,j自加1while(p&&j

4、

5、j

6、LNode*)malloc(sizeof(LNode));使用malloc函數(shù)動(dòng)態(tài)分配存儲(chǔ)空間,指針s指向新開(kāi)辟的結(jié)點(diǎn),并將插入元素x存放到新開(kāi)辟結(jié)點(diǎn)s的數(shù)據(jù)域,將結(jié)點(diǎn)s指向i+1結(jié)點(diǎn)位置,第i個(gè)結(jié)點(diǎn)指向s,實(shí)現(xiàn)了鏈表元素插入。bpaxss->data=x;s->next=p->next;p->next=s;3.單鏈表的刪除:bcpp->next=p->next->next;...三、運(yùn)行結(jié)果1.單鏈表初始化2.創(chuàng)建單鏈表3.求鏈表長(zhǎng)度4.檢查鏈表是否為空5.遍歷鏈表6.從鏈表中查找元素7.從鏈表中查找與給定元素值相同的元素在順序表中的位置...1.

7、向鏈表中插入元素插入元素之后的鏈表2.從鏈表中刪除元素刪除位置為6的元素(是3)3.清空單鏈表三、實(shí)驗(yàn)體會(huì)經(jīng)過(guò)這次單鏈表基本操作實(shí)驗(yàn),自己的編程能力有了進(jìn)一步的提高,認(rèn)識(shí)到自己以前在思考一個(gè)問(wèn)題上思路不夠開(kāi)闊,不能靈活的表達(dá)出自己的想法,雖然在打完源代碼之后出現(xiàn)了一些錯(cuò)誤,但是經(jīng)過(guò)認(rèn)真查找、修改,最終將錯(cuò)誤一一修正,主要是在寫算法分析的時(shí)候出現(xiàn)了障礙,經(jīng)過(guò)從網(wǎng)上查找資料,自己也對(duì)程序做了仔細(xì)的分析,對(duì)單鏈表創(chuàng)建、插入、刪除算法畫了詳細(xì)的N-S流程圖。...三、C語(yǔ)言版原代碼#include#include/*定義

8、ElemType為int類型*/typedefintElemType;#defineTRUE1#defineFALSE0#defineNULL0#defineflag-1/*單鏈表的結(jié)點(diǎn)類型*/typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkedList;/*初始化單鏈表*/LinkedListLinkedListInit(){LinkedListL;L=(LinkedList)malloc(sizeof(LNode));L->next=NULL;returnL;}/*清空單鏈

9、表*/voidLinkedListClear(LinkedListL){L->next=NULL;printf("鏈表已經(jīng)清空");}/*檢查單鏈表是否為空*/intLinkedListEmpty(LinkedListL){if(L->next==NULL)returnTRUE;elsereturnFALSE;}/*遍歷單鏈表*/voidLinkedListTraverse(LinkedListL){LinkedListp;...p=L->next;if(p==NULL)printf("單鏈表為空表");else{printf("鏈表中的元素

10、為:");while(p!=NULL){printf("%d",p->data);p=p->next;}

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。