




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、、課程題目 集合的并、交和差運算二、問題描述功能:編制一個能演示執(zhí)行集合的并、交和差運算的程序.三、根本要求1)集合的元素限定為小寫字母字符【'a' . 'z'】2)演示程序以用戶和計算機的對話方式執(zhí)行.四、測試數(shù)據(jù)(1) Set1= " magazine , Set2= ' paper ,Set1U Set2= " aegimnprz ",Set1 ASet2=" ae ",Set1-Set2= " gimnz ;(2) Set1= " 012oper4a6tion89 ,Set2=
2、 " error data ", Set1 U Set2=" adeinoprt ,Set1 A Set2=" aeort , Set1-Set2= " inp .五、算法思想為了實現(xiàn)上述程序的功能,應(yīng)以有序鏈表表示集合.為此, 需要兩個抽象數(shù)據(jù)類型:有序表和集合.1、有序表的抽象數(shù)據(jù)類型定義為:input(linklist l)初始條件:l是以l為頭節(jié)點的空鏈表.操作結(jié)果:生成以l為頭節(jié)點的非空鏈表output(linklist l)初始條件:l是以l為頭節(jié)點的非空鏈表.操作結(jié)果:將以l為頭節(jié)點的鏈表中數(shù)據(jù)逐個輸由.2、集合的抽象數(shù)據(jù)類型定義
3、為: heji(linklist A,linklist B,linklist C) 初始條件:鏈表 A、B、C已存在CoCo操作結(jié)果:生成一個由A和B的并集構(gòu)成的集合jiaoji(linklist A,linklist B ,linklist ,C) 初始條件:鏈表 A、B、C已存在操作結(jié)果:生成一個由A和B的交集構(gòu)成的集合六、模塊化分本程序抱含四個模塊:1)節(jié)點結(jié)構(gòu)單元模塊一一定義有序表的節(jié)點結(jié)構(gòu); 2)有序表單元模塊一一實現(xiàn)有序表的抽象數(shù)據(jù)類型;!= "退生);3)集合單元模塊一一實現(xiàn)集合獲得抽象數(shù)據(jù)類型; 4)主程序模塊: Void main () 初始化; do 接受命令;
4、處理命令; while ( “命令)七、源程序# include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>typedef struct node(int data;struct node* next;lnode,*linklist;lnode *init_lnode();void input(linklist l);void jiaoji(linklist A,linklist B,linklist C);void heji(linklist A,linklist
5、B,linklist C);void output(linklist l);void main()(lnode *a,*b,*c;a=init_lnode();b=init_lnode();c=init_lnode();printf("求AB集合的交集和并集n");printf("請輸入A集合的元素:");input(a);printf("n請輸入B集合的元素:");input(b);printf("n 輸入完成 n");printf("n按任意鍵進入主菜單:");getch();dochar
6、menu尸"nnn 1.交集運算 nn" 2和集運算 nn"" 3.差集運算 nn" 0. 退由nn"printf("%s",menu);printf("n 請在 0-3 中選擇:");scanf("%d,&sel);switch(sel)case 1:printf("AB集合的交集是:);jiaoji(A,B,C);output(C);C->next=NULL;break;case 2:printf("AB 的合集是:");heji(A,B
7、,C);output(C);C->next=NULL;break;case 3:chaji(A,B,C);break;case 0:break;while(sel!=0);/*主函數(shù)結(jié)束*/* 初始化函數(shù) */lnode * init_lnode()(Inode *l;l=(lnode *)malloc(sizeof(lnode);l->next=NULL;return l;尸*錄入函數(shù) */void input(linklist l)lnode *s;int x;scanf("%d",&x);while(x!=0)s=(lnode *)malloc(s
8、izeof(lnode);s->data=x;s->next=l->next;l->next=s;scanf("%d",&x);/* 交集函數(shù) */void jiaoji(linklist A,linklist B,linklist C)p=A->next;while(p!=NULL)q=B->next;while(q!=NULL)&&(q->data!=p->data) q=q->next;if(q!=NULL)&&(q->data=p->data)t=(lnode*
9、)malloc(sizeof(lnode);t->data=p->data;t->next=C->next;C->next=t;p=p->next;/* 輸由函數(shù) */void output(linklist l)lnode *s;s=l->next;while(s!=NULL)printf("%5d",s->data);s=s->next;printf("n");/* 并集函數(shù) *void heji(linklist A,linklist B,linklist C)lnode *p,*q,*t;p=
10、A->next;while(p!=NULL)t=(lnode*)malloc(sizeof(lnode);t->data=p->data;t->next=C->next;C->next=t;p=p->next;q=B->next;while(q!=NULL)p=A->next;while(p!=NULL)&&(p->data!=q->data) p=p->next;if (p=NULL)t=(lnode*)malloc(sizeof (lnode);t->data=q->data;t->n
11、ext=C->next;C->next=t;q=q->next;/*差集函數(shù) *void chaji(linklist A,linklist B, linklist C)lnode *p,*q,*s,*t;p=A->next;printf("A 與 B 的差集是:n");while(p!=NULL)q=B->next;while(q!=NULL)&&(p->data!=q->data)q=q->next;if(q=NULL)(s=(lnode*)malloc(sizeof(lnode);s->data=p
12、->data;s->next=C->next;C->next=s;p=p->next;output(C);C->next=NULL;q=B->next;printf("B 與 A 的差集是:n");while(q!=NULL)(p=A->next;while(p!=NULL)&&(p->data!=q->data) p=p->next;if(p=NULL)(t=(lnode*)malloc(sizeof(lnode);t->data=q->data;t->next=C->
13、;next;C->next=t;)q=q->next;)output(C);)四、測試數(shù)據(jù)及程序運行情況 程序運行結(jié)果:9 "C:DOCUMEHTS AND SEIT工HG八ADtHHETRATOR、桌面TDcbug'jihc. cec請輸入A集合的元素:magzine請輸入B第含的元素:paper,任意鍵進入主菜單 1.交集運算2和集運算眾:.差集運算 0. 退出請在07中選擇:1的交集是:ae請在07中選擇:2的和集是:aegininprz請在加3中選擇:3 B的差集是:gimnNPress any key to continue.Ld"C:DOCU
14、MEHTS AND SEIT工HG八ADtHHETRATOR、桌面TDcbug'jihc. cec請掇入A集合的五重:012oper4a6tion89請輸入B集合的兀素:data,任意鍵進入主菜單工.交集運算2和集運算眾:.差集運算 0. 退出,在0T中選擇:1HB的交集是:aeurt請在0T中選擇:2AB的和集是:adeinoprt請在07中選擇:3HB的差集是:inpLdPress any key to continue八、心得體會1、由于對集合的三種運算的算法推敲缺乏,在鏈表類型及其尾指針的設(shè)置時由現(xiàn)錯誤,導(dǎo)致程序低效.2、剛開始時曾忽略了一些變量參數(shù)的標識"&,使調(diào)試程序浪費時間不少.今后應(yīng)重視確定參數(shù)的變量和賦值屬性的區(qū)分和標識.3、開始時輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 退役重武器測試題及答案
- 2023-2024學(xué)年山西省太原市迎澤區(qū)三年級(上)期末數(shù)學(xué)試卷(含答案)
- 小黑子考試試題及答案
- 2025年消防設(shè)施操作員之消防設(shè)備高級技能押題練習(xí)試題A卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備中級技能能力檢測試卷B卷附答案
- 2023年全國翻譯專業(yè)資格(水平)考試英語三級筆譯實務(wù)試題真題及答案
- 配電柜知識培訓(xùn)課件
- 卸妝膏護膚知識培訓(xùn)課件
- 小紅船讀后感
- 市場營銷策略制定服務(wù)協(xié)議
- 安全生產(chǎn)法律法規(guī)培訓(xùn)課件1
- 音樂教育:培養(yǎng)學(xué)生的審美能力與綜合藝術(shù)素養(yǎng)培訓(xùn)課件
- 2023低空數(shù)字航空攝影規(guī)范
- 大班-科學(xué)-變化的月亮-課件
- 高中學(xué)生物理學(xué)情分析【3篇】
- 培訓(xùn)課件 -低成本自動化的開展與案例(上)
- 急救車藥品一覽表
- 項目部成立文件示例1
- 強直性脊柱炎患者功能鍛煉組圖
- 新課程標準2022版綜合實踐
- 40篇英語短文搞定高考3500個單詞
評論
0/150
提交評論