![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告集合的并交和差運(yùn)算_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/6/e211ace9-35a2-4c1f-94fe-10f54435c66a/e211ace9-35a2-4c1f-94fe-10f54435c66a1.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告集合的并交和差運(yùn)算_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/6/e211ace9-35a2-4c1f-94fe-10f54435c66a/e211ace9-35a2-4c1f-94fe-10f54435c66a2.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告集合的并交和差運(yùn)算_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/6/e211ace9-35a2-4c1f-94fe-10f54435c66a/e211ace9-35a2-4c1f-94fe-10f54435c66a3.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告集合的并交和差運(yùn)算_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/6/e211ace9-35a2-4c1f-94fe-10f54435c66a/e211ace9-35a2-4c1f-94fe-10f54435c66a4.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告集合的并交和差運(yùn)算_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/6/e211ace9-35a2-4c1f-94fe-10f54435c66a/e211ace9-35a2-4c1f-94fe-10f54435c66a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)報(bào)告20122013學(xué)年第二學(xué)期課程 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)名稱集合的并、交和差運(yùn)算學(xué)生姓名張文浩 學(xué)號(hào)1104032028專業(yè)班級(jí)11網(wǎng)工2班指導(dǎo)教師何立新 華珊珊2013年 6月題目: 集合的并、交和差運(yùn)算【問題描述】編制一個(gè)能演示執(zhí)行集合的并、交和差運(yùn)算的程序。【基本要求】(1) 集合的元素限定為小寫字母字符 a.z 。(2) 演示程序以用戶和計(jì)算機(jī)的對(duì)話方式執(zhí)行?!緶y(cè)試數(shù)據(jù)】(1)Set1="magazine",Set2="paper",Set1Set2="aegimnprz",Setl Se
2、t2="ae",Set1-Set2="gimnz"。(2)Set1= " 012oper4a6tion89",Set2="error data",Set1Set2="adeinoprt",Setl Set2="aeort",Set1-Set2="inp"。【實(shí)現(xiàn)提示】以有序鏈表表示集合?!具x作內(nèi)容】(1) 集合的元素判定和子集判定運(yùn)算。(2) 求集合的補(bǔ)集。(3) 集合的混合運(yùn)算表達(dá)式求值。(4) 集合的元素類型推廣到其他類型 , 甚至任意類型。一、 實(shí)驗(yàn)
3、內(nèi)容實(shí)驗(yàn)題目:編制一個(gè)演示集合的并、交和差運(yùn)算的程序。需求分析:1、 本演示程序中,集合的元素限定為小寫字母字符“a”z”。集合輸入的形式為一個(gè)以“回車符“為結(jié)束標(biāo)志的字符串,串中字符順序不限。2、 演示程序以用戶和計(jì)算機(jī)的對(duì)話方式執(zhí)行,即在計(jì)算機(jī)終端上顯示“提示信息“之后,由用戶在鍵盤上輸入演示程序中規(guī)定的運(yùn)算命令;相應(yīng)的輸入數(shù)據(jù)和運(yùn)算結(jié)果顯示在其后。3、 程序執(zhí)行的命令包括:1) 構(gòu)造集合1;2)構(gòu)造在集合2;3)求并集;4)求交集;5)求差集;6)返回;7)結(jié)束。“構(gòu)造集合1”和“構(gòu)造集合2”時(shí),需以字符的形式鍵入集合元素。二、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
4、為了實(shí)現(xiàn)上述程序的功能,應(yīng)以有序鏈表表示集合。為此,需要兩個(gè)抽象數(shù)據(jù)類型:有序表和集合。1、有序表的抽象數(shù)據(jù)類型定義為:readdata(pointer head)初始條件:head是以head為頭節(jié)點(diǎn)的空鏈表。操作結(jié)果:生成以head為頭節(jié)點(diǎn)的非空鏈表。pop(pointer head)初始條件:head是以head為頭節(jié)點(diǎn)的非空鏈表。操作結(jié)果:將以head為頭節(jié)點(diǎn)的鏈表中數(shù)據(jù)逐個(gè)輸出。2、集合的抽象數(shù)據(jù)類型定義為:and(pointer head1,pointer head2,pointer head3)初始條件:鏈表head1、head2、head3已存在操作結(jié)果:生成一個(gè)由head1和
5、head2的并集構(gòu)成的集合head3。or(pointer head1,pointer head2,pointer head3)初始條件:鏈表head1、head2、head3已存在操作結(jié)果:生成一個(gè)由head1和head2的交集構(gòu)成的集合head3。differ(pointer head1,pointer head2,pointer head3)初始條件:鏈表head1、head2、head3已存在操作結(jié)果:生成一個(gè)由head1和head2的差集構(gòu)成的集合head3。3、本程序抱含四個(gè)模塊:1) 節(jié)點(diǎn)結(jié)構(gòu)單元模塊定義有序表的節(jié)點(diǎn)結(jié)構(gòu);2) 有序表單元模塊實(shí)現(xiàn)有序表的抽
6、象數(shù)據(jù)類型;3) 集合單元模塊實(shí)現(xiàn)集合獲得抽象數(shù)據(jù)類型;4)主程序模塊:Void main()初始化;do接受命令;處理命令;while(“命令”!=“退出”);三、算法設(shè)計(jì)#include<stdio.h>#include<stdlib.h>typedef struct LNode/定義結(jié)構(gòu)體類型指針char data;struct LNode*next;*pointer;void readdata(pointer head)/定義輸入集合函數(shù)pointer p;char tmp;scanf("%c",&tmp);while(t
7、mp!='n')p=(pointer)malloc(sizeof(struct LNode);p->data=tmp;p->next=head->next;head->next=p;scanf("%c",&tmp);void pop(pointer head)/定義輸出集合函數(shù)pointer p;p=head->next;while(p!=NULL)printf("%c",p->data);p=p->next;printf("n");void and(pointer h
8、ead1,pointer head2,pointer head3)/定義集合的并集函數(shù)pointer p1,p2,p3;p1=head1->next;while(p1!=NULL) p3=(pointer)malloc(sizeof(struct LNode);p3->data=p1->data;p3->next=head3->next;head3->next=p3;p1=p1->next;p2=head2->next;while(p2!=NULL)p1=head1->next;while(p1!=NULL)&&(p1-&g
9、t;data!=p2->data) p1=p1->next;if (p1=NULL)p3=(pointer)malloc(sizeof(struct LNode);p3->data=p2->data;p3->next=head3->next;head3->next=p3;p2=p2->next;void or(pointer head1,pointer head2,pointer head3)/定義集合的交集函數(shù)pointer p1,p2,p3;p1=head1->next;while(p1!=NULL)p2=head2->next;
10、while(p2!=NULL)&&(p2->data!=p1->data)p2=p2->next;if(p2!=NULL)&&(p2->data=p1->data)p3=(pointer)malloc(sizeof(struct LNode);p3->data=p1->data;p3->next=head3->next;head3->next=p3;p1=p1->next;void differ(pointer head1,pointer head2,pointer head3)/定義集合的差集函
11、數(shù)pointer p1,p2,p3;p1=head1->next;while(p1!=NULL)p2=head2->next;while(p2!=NULL)&&(p2->data!=p1->data)p2=p2->next;if(p2=NULL)p3=(pointer)malloc(sizeof(struct LNode);p3->data=p1->data;p3->next=head3->next;head3->next=p3;p1=p1->next;void main()/主函數(shù)int x; printf(&
12、quot;(輸入數(shù)據(jù),按回車鍵結(jié)束,第一個(gè)集合大于第二個(gè)集合)n");pointer head1,head2,head3;head1=(pointer)malloc(sizeof(struct LNode);head1->next=NULL;head2=(pointer)malloc(sizeof(struct LNode);head2->next=NULL;head3=(pointer)malloc(sizeof(struct LNode);head3->next=NULL;printf("請(qǐng)輸入集合1:n");readdata(head1);
13、/調(diào)用輸入集合函數(shù)printf("請(qǐng)輸入集合2:n");readdata(head2);/調(diào)用輸入集合函數(shù)A:printf("1.并集 2.交集 3.差集 4.結(jié)束 x.重新運(yùn)算n"); doprintf("請(qǐng)選擇序號(hào)n");scanf("%d",&x);switch(x)case 1:printf("兩集合的并是n");and(head1,head2,head3);/調(diào)用并集函數(shù)pop(head3);head3->next=NULL;break;case 2:printf(&qu
14、ot;兩集合的交是n");or(head1,head2,head3);/調(diào)用交集函數(shù)pop(head3);head3->next=NULL;break;case 3: printf("兩集合的差是n");differ(head1,head2,head3);/調(diào)用差集函數(shù)pop(head3);head3->next=NULL;break; case 4:break;default:goto A;while(x!=4);四、測(cè)試數(shù)據(jù)及程序運(yùn)行情況 運(yùn)行時(shí)提示輸入:輸入集合1:asd輸入集合2:asf根據(jù)提示輸入運(yùn)算類型:1.并集 2.交集 3.差集 4.結(jié)束 x.重新運(yùn)算 輸入1,輸出”fasd”輸入2,輸出”as”輸入3,輸出”d”輸入4,輸出”press any key to continue”(結(jié)束)輸入其他數(shù),輸出” 1.并集 2.交集 3.差集 4.結(jié)束 x.重新運(yùn)算”(重新選擇運(yùn)算類型)下面是運(yùn)行時(shí)的界面(附圖):五、參考資料1 王昆侖,李紅. 數(shù)據(jù)結(jié)構(gòu)與算法. 北京:中國
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 4000噸年無機(jī)碘化物生產(chǎn)項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 2025年全球及中國3-氨基苯磺酸行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球噪聲緩解系統(tǒng)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國膀胱沖洗器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球多層雙向穿梭車行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球斗提機(jī)畚斗行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球汽車雙面膠帶行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球單立柱電動(dòng)堆垛機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球柔印機(jī)網(wǎng)紋輥行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球3-溴-4-氟苯甲酸行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 服裝標(biāo)準(zhǔn)流水生產(chǎn)線
- 2024年內(nèi)蒙古電力集團(tuán)招聘筆試參考題庫含答案解析
- 保潔服務(wù)品質(zhì)履約評(píng)估報(bào)告
- 火龍罐綜合灸療法
- 紅色中國風(fēng)西安旅游PPT模板
- 皮內(nèi)注射技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 個(gè)人借條電子版模板
- 工業(yè)企業(yè)電源快速切換裝置設(shè)計(jì)配置導(dǎo)則
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 胸外科診療指南和操作規(guī)范
評(píng)論
0/150
提交評(píng)論