數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告

數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告

ID:35227083

大?。?32.00 KB

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

時(shí)間:2019-03-22

數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告_第5頁(yè)
資源描述:

《數(shù)據(jù)結(jié)構(gòu)線(xiàn)性表操作實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目:線(xiàn)性表的操作實(shí)驗(yàn)?zāi)康模?.掌握上機(jī)調(diào)試線(xiàn)性表的基本方法;2.掌握線(xiàn)性表的一些基本操作;實(shí)驗(yàn)內(nèi)容:將兩個(gè)有序鏈表合并為一個(gè)有序鏈表一、需求分析1.實(shí)驗(yàn)程序中先創(chuàng)建兩個(gè)有序鏈表,演示程序以用戶(hù)和計(jì)算機(jī)的對(duì)話(huà)方式執(zhí)行,即在計(jì)算機(jī)終端上顯示“提示信息”之后,由用戶(hù)在鍵盤(pán)上輸入兩個(gè)鏈表中的相應(yīng)數(shù)據(jù)。2.將兩個(gè)鏈表合并時(shí)可按數(shù)據(jù)從大到小或從小到大合并,用戶(hù)根據(jù)提示可選擇一種排序方式。3.程序執(zhí)行命令包括:(1)構(gòu)造鏈表;(2)輸入數(shù)據(jù);(3)合并兩個(gè)鏈表,根據(jù)用戶(hù)需求選擇一種排序方式;(4)將合并結(jié)果輸出;(5)結(jié)束4.測(cè)試數(shù)據(jù):鏈表1數(shù)據(jù)為:2,4,6,7,10鏈表2數(shù)

2、據(jù)為:1,3,5,6,7,12按從小到達(dá)合并為:1,2,3,4,5,6,6,7,7,10,12;按從大到小合并為:12,10,7,7,6,6,5,4,3,2,1;二、概要設(shè)計(jì)1.基本操作Linklistcreat()操作結(jié)果:構(gòu)造一個(gè)鏈表,并輸入數(shù)據(jù),返回頭節(jié)點(diǎn)指針。voidprint(Linklisthead)初始條件:鏈表已存在;操作結(jié)果:將鏈表輸出。voidMergeList_1(LinklistLa,LinklistLb)初始條件:有序線(xiàn)性鏈表La和Lb已存在;操作結(jié)果:將La和Lb兩個(gè)鏈表按從小到大的順序合并。voidMergeList_2(LinklistLa,Linklist

3、Lb)初始條件:有序線(xiàn)性鏈表La和Lb已存在;操作結(jié)果:將La和Lb兩個(gè)鏈表按從大到小的順序合并。2.本程序包括四個(gè)模塊:(1)主程序模塊;(2)鏈表數(shù)據(jù)輸入模塊;將新鏈表輸出按從小到大合并兩鏈表(3)鏈表合并模塊;(4)鏈表輸出模塊;數(shù)據(jù)輸入主程序模塊將新鏈表輸出按從大到小合并兩鏈表三、詳細(xì)設(shè)計(jì)1.元素類(lèi)型,節(jié)點(diǎn)類(lèi)型,指針類(lèi)型typedefstructLNode//定義節(jié)點(diǎn){intdata;structLNode*next;}LNode,*Linklist;2.每個(gè)模塊的分析(1)主函數(shù)模塊intmain(){Linklisthead1,head2;inti;printf("請(qǐng)輸入鏈表1

4、數(shù)據(jù)(由小到大,輸入0表示輸入結(jié)束):");head1=creat();//創(chuàng)建鏈表1,將頭結(jié)點(diǎn)指針?lè)祷貫閔ead1printf("請(qǐng)輸入鏈表2數(shù)據(jù)(由小到大,輸入0表示輸入結(jié)束):");head2=creat();printf("請(qǐng)選擇排序方式(輸入1則從小到達(dá)合并,輸入其它整數(shù)則按從大到小合并):");scanf("%d",&i);//創(chuàng)建鏈表2,將頭結(jié)點(diǎn)指針?lè)祷貫閔ead2if(i==1)//選擇兩種排序方式,如果輸入1,則合并后按從小到大輸出;輸入其它數(shù),合成鏈表按從大到小輸出{printf("按小到大將兩表合并得:");MergeList1(head1,head2);

5、//將創(chuàng)建好的兩表的頭結(jié)點(diǎn)地址head1,head2作為函數(shù)參數(shù)}else{printf("按從大到小將兩表合并得:");MergeList2(head1,head2);//將創(chuàng)建好的兩表的頭結(jié)點(diǎn)地址head1,head2作為函數(shù)參數(shù)}return0;}(2)數(shù)據(jù)輸入創(chuàng)建鏈表模塊Linklistcreat()//創(chuàng)建鏈表函數(shù),并將創(chuàng)建鏈表的頭結(jié)點(diǎn)指針?lè)祷貃Linklisthead,p,s;intz=1,x;head=(LNode*)malloc(sizeof(LNode));p=head;while(z){scanf("%d",&x);if(x!=0)//輸入0表示鏈表數(shù)據(jù)輸入結(jié)束{s

6、=(LNode*)malloc(sizeof(LNode));s->data=x;p->next=s;s->next=NULL;p=s;}elsez=0;}return(head);}(3)合并鏈表模塊,兩個(gè)函數(shù)分別表示兩種排序方式,將鏈表合并后直接在函數(shù)中調(diào)用鏈表輸出函數(shù)voidprint(Linklisthead)將鏈表輸出voidMergeList_1(LinklistLa,LinklistLb)//已知鏈表La和Lb元素都按從小到大排列,將La和Lb合并成新鏈表,其中元素也按從小到大排列{Linklistpa,pb,pc,Lc;pa=La->next;pb=Lb->next;Lc=

7、pc=La;//把La的頭節(jié)點(diǎn)作為新建鏈表Lc的頭結(jié)點(diǎn)while(pa&&pb){if(pa->data<=pb->data){pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next;}}pc->next=pa?pa:pb;//插入剩余段print(Lc);//將鏈表Lc輸出}voidMergeList_2(LinklistLa,Linklist

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。