版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 題目一:集合的并、交運(yùn)算1 設(shè)計思想首先,建立兩個帶頭結(jié)點的有序單鏈表表示集合A和B。須注意的是:利用尾插入法建立有序單鏈表,輸入數(shù)值是升序排列。 其次,根據(jù)集合的運(yùn)算規(guī)則,利用單鏈表的有序性,設(shè)計交、并和差運(yùn)算。根據(jù)集合的運(yùn)算規(guī)則,集合AB中包含所有既屬于集合A又屬于集合B的元素。因此,須查找單鏈表A和B中的相同元素并建立一個鏈表存于此鏈表中。 根據(jù)集合的運(yùn)算規(guī)則,集合AB中包含所有或?qū)儆诩螦或?qū)儆诩螧的元素。因此, 遍歷兩鏈表的同時若元素相同時只將集合A中的元素存于鏈表中,若集合A中的下一個元素小于B中的元素就將A中的元素存于新建的鏈表中。反之將B中的元素存于鏈表中。2所用數(shù)據(jù)結(jié)構(gòu)線
2、性結(jié)構(gòu)利用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)集合的基本運(yùn)算。3源代碼分析#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1typedef int Status;typedef char Elemtype;typedef struct LNode線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)Elemtype data;struct LNode *next;Lnode,*Linklist;#include"text.h"LNode* Greatlist(int *N,int n) /建立一個帶有頭結(jié)點的單鏈表 Linklis
3、t p,q,L; L=p=(LNode *)malloc(sizeof(LNode);L->next=NULL;if(n!=0)for(int i=0;i<n;i+) q=(LNode *)malloc(sizeof(LNode);/尾部插入結(jié)點建立帶有頭結(jié)點單鏈表q->data=Ni; p->next=q;/指針后移p=q;p->next=NULL;/對于非空表,最后結(jié)點的指針域放空指針return L;LNode* jiaoji(Linklist la,Linklist lb)/求兩集合的交集Linklist pa,pb,pc,Lc;pa=la->nex
4、t;pb=lb->next;Lc=(Linklist)malloc(sizeof(LNode);/申請存儲空間Lc->next=NULL;pc=Lc;while(pa&&pb)if(pa->data=pb->data) pc->next=(Linklist)malloc(sizeof(LNode);/若相等就申請存儲空間鏈到Lc上pc=pc->next;pc->data=pa->data;pa=pa->next;/la,lb的指針后移pb=pb->next;else if(pa->data>pb->d
5、ata)/若pa所指的元素大于pb所指的元素pb指針后移pb=pb->next;elsepa=pa->next;pc->next=NULL;/最后給pc的next賦NULLreturn Lc; LNode* bingji(Linklist la,Linklist lb)/求兩集合的并集Linklist pa,pb,pc,lc;pa=la->next;pb=lb->next;lc=(Linklist)malloc(sizeof(LNode);lc->next=NULL;pc=lc;while(pa&&pb)if(pa->data=pb-&
6、gt;data)pc->next=(Linklist)malloc(sizeof(LNode);/若pa所指的元素等于pb所指的元素申請空間將值存入鏈表lc,pa,pb指針后移pc=pc->next; pc->data=pa->data;pa=pa->next;pb=pb->next;else if(pa->data>pb->data)pc->next=(Linklist)malloc(sizeof(LNode);/若pa所指的元素大于pb所指的元素申請空間將值存入鏈表lc,pb指針后移pc=pc->next;pc->da
7、ta=pb->data;pb=pb->next;elsepc->next=(Linklist)malloc(sizeof(LNode);/若pa所指的元素小于pb所指的元素申請空間將值存入鏈表lc,pa指針后移pc=pc->next;pc->data=pa->data;pa=pa->next; pc->next=pa?pa:pb;return lc;void Print_LinkList(Linklist L)/輸出元素Linklist p=L->next; while(p)/鏈表不為空時輸出鏈表中的值printf(" %3c&q
8、uot; ,p->data);p=p->next;printf(" n" );void main()Linklist L1,L2,La,Lb;int A4='a','b','c','f'int B4='c','d','e','f'printf("1)含多個結(jié)點的順序表a,b,c,f和c,d,e,fn");printf("建立鏈表L1為n");L1=Greatlist(A,4);Print_Link
9、List(L1);printf("建立鏈表L2為n");L2=Greatlist(B,4);Print_LinkList(L2);printf("兩鏈表的交集為:n");La=jiaoji(L1,L2);Print_LinkList(La);printf("兩鏈表的并集為:n");Lb=bingji(L1,L2);Print_LinkList(Lb);printf("2)含一個結(jié)點的順序表a和空表n");int A11='a'int B11='0'printf("建立鏈表L
10、1為n");L1=Greatlist(A1,1);Print_LinkList(L1);printf("建立鏈表L2為n");L2=Greatlist(B1,0);Print_LinkList(L2);printf("兩鏈表的交集為:n");La=jiaoji(L1,L2);Print_LinkList(La);printf("兩鏈表的并集為:n");Lb=bingji(L1,L2);Print_LinkList(Lb);printf("3)2個空表n");int A21='0'int B
11、21='0'printf("建立鏈表L1為n");L1=Greatlist(A2,0);Print_LinkList(L1);printf("建立鏈表L2為n");L2=Greatlist(B2,0);Print_LinkList(L2);printf("兩鏈表的交集為:n");La=jiaoji(L1,L2);Print_LinkList(La);printf("兩鏈表的并集為:n");Lb=bingji(L1,L2);Print_LinkList(Lb);free(L1);free(L2);free(La);free(Lb);4測試數(shù)據(jù)及運(yùn)行結(jié)果(1)含多個結(jié)點的順序表a,b,c,f和c,d,e,f(2)含一個結(jié)點的順序表a和空表 (3)2個空表 5算法分析(1)LNode* Greatlist()/尾插法建立鏈表算法的時間復(fù)雜度為O(n),n為輸入元素個數(shù)。(2)LNode* jiaoji(Linklist l
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)七年級下冊第41課時《用加減法解二元一次方程組(三)》聽評課記錄
- 湘教版數(shù)學(xué)八年級上冊2.5《第6課時 全等三角形的性質(zhì)和判定的應(yīng)用》聽評課記錄1
- 聽評課記錄英語九年級
- 人教版(廣西版)九年級數(shù)學(xué)上冊聽評課記錄21.2 解一元二次方程
- 生態(tài)自然保護(hù)游合同
- 狂犬疫苗打完免責(zé)協(xié)議書(2篇)
- 蘇科版數(shù)學(xué)八年級下冊《10.2 分式的基本性質(zhì)》聽評課記錄
- 部編版道德與法治七年級上冊第三單元第七課《親情之愛第三框讓家更美好》聽課評課記錄
- 【2022年新課標(biāo)】部編版七年級上冊道德與法治第三單元師長情誼6-7課共5課時聽課評課記錄
- 五年級數(shù)學(xué)上冊蘇教版《認(rèn)識平方千米》聽評課記錄
- 2025年個人學(xué)習(xí)領(lǐng)導(dǎo)講話心得體會和工作措施例文(6篇)
- 2025大連機(jī)場招聘109人易考易錯模擬試題(共500題)試卷后附參考答案
- 2020-2025年中國中小企業(yè)行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- 2025-2030年中國電動高爾夫球車市場運(yùn)行狀況及未來發(fā)展趨勢分析報告
- 物流中心原材料入庫流程
- 河南省濮陽市2024-2025學(xué)年高一上學(xué)期1月期末考試語文試題(含答案)
- 長沙市2025屆中考生物押題試卷含解析
- 2024年08月北京中信銀行北京分行社會招考(826)筆試歷年參考題庫附帶答案詳解
- 2024年芽苗菜市場調(diào)查報告
- 蘇教版二年級數(shù)學(xué)下冊全冊教學(xué)設(shè)計
- 職業(yè)技術(shù)學(xué)院教學(xué)質(zhì)量監(jiān)控與評估處2025年教學(xué)質(zhì)量監(jiān)控督導(dǎo)工作計劃
評論
0/150
提交評論