有兩個(gè)集合用兩個(gè)線性表LA和LB表示即線性表中的數(shù)據(jù)元素即為集合中的成員現(xiàn)要求一個(gè)新的集合A=A∪B_第1頁(yè)
有兩個(gè)集合用兩個(gè)線性表LA和LB表示即線性表中的數(shù)據(jù)元素即為集合中的成員現(xiàn)要求一個(gè)新的集合A=A∪B_第2頁(yè)
有兩個(gè)集合用兩個(gè)線性表LA和LB表示即線性表中的數(shù)據(jù)元素即為集合中的成員現(xiàn)要求一個(gè)新的集合A=A∪B_第3頁(yè)
有兩個(gè)集合用兩個(gè)線性表LA和LB表示即線性表中的數(shù)據(jù)元素即為集合中的成員現(xiàn)要求一個(gè)新的集合A=A∪B_第4頁(yè)
有兩個(gè)集合用兩個(gè)線性表LA和LB表示即線性表中的數(shù)據(jù)元素即為集合中的成員現(xiàn)要求一個(gè)新的集合A=A∪B_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

例2」假設(shè)有兩個(gè)集合A和E分別用兩個(gè)線性表LA和LB表示,即:線性表中的數(shù)據(jù)元素即為集合中的成員。現(xiàn)要求一個(gè)新的集合A=AUBo/〃//////////////////〃////////〃/////////////////////////上述問(wèn)題可演繹為:要求對(duì)線性表作如下操作:擴(kuò)人線性表LA,將存在于線性表LB中而不存在于線性表LA中的數(shù)據(jù)元素插入到線性表LA中去。/〃///////////////////////////////////////////////////////操作步驟:從線性表LE中依次察看每個(gè)數(shù)據(jù)元素;GetElem(LE,i)_e依值在線性表LA中進(jìn)行查訪;LocateElem(LA,e,equal())若不存在,則插入之。ListInsert(LA、n+1,e)//////////////////////////////////////////voidunion(List&La,ListLb){La_len=ListLength(La);//求線性表的長(zhǎng)度Lb_len=ListLength(Lb);foi(i=l;i<=Lb_len;i-H-){GetElem(Lb,i,e);//取Lb中第i個(gè)數(shù)據(jù)元素賦給eif(!LocateElem(La,e,equalO))ListInsert(La,++La_leii.e);中不存在和e相同的數(shù)據(jù)元素,則插入之}}//union/〃////〃/////////////////////////////////////////////////#lfhdefDSHfrdefineDSH#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIELE-1#defineOVERFLOW-2//Status是函數(shù)的類型,其值是函數(shù)結(jié)果狀態(tài)代碼tvpedefintStatus;tvpedefintElemType;#endif/〃////〃/////////////////////////////////////////////////#lfhdefLISTHfrdefineLISTH^includeHds.hH#defineLIST_INIT_SIZE100#defineLISTINCREMENT10tvpedefstmct{ElemTvpe*eleni;//存儲(chǔ)空間基址intlength; 〃當(dāng)前長(zhǎng)度intlistsize; 〃當(dāng)前分配的存儲(chǔ)容量(以sizeof(ElemTvpe)為單位)}List; 〃俗稱順序表#endifStatusIiiitList(List&);voidCreateList(List&、iiit[]jnt);iiitListLength(List);voidGetElem(List,mt,ElemTvpe&);mtLocateElem(List,ElemTvpe,Status(*compaie)(ElemTvpe,ElemTvpe));StatusListInsert(List&、mt,ElemT^e);voidPrmtList(List);#include<stdio.h>#include<stdlib.h>#include”List.h”StatusIiiitList(List&L)〃構(gòu)造一個(gè)空的線性表L。L.elem=(ElemType*)nialloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L」ength=0;L?listsize=LIST_INIT_SIZE;returnOK;}//InitListvoidCreateList(List&L,iiita[],iiitn){〃順序輸入n個(gè)數(shù)據(jù)元素,建立順序表inti;fbr(i=O;i<n;++i)L.elem[i]=a[i];〃輸入元素值L」ength=n;}//CreateListiiitListLength(ListL)

retuinL.length;voidGetElem(ListL.inti,ElemType&亡)e=L.elem[i-l];mtLocateElem(ListL,ElemTvpee.Status(*compare)(ElemType.ElemT\Tpe))mti;int*p;1=1; 〃1的初值為第1元素的位序p=L.elem;//p的初值為第1元素的存儲(chǔ)位置wlule(i<=L.length&&!(*compaie)(*p++,e))++i;if(i<=L.length)returni;elsereturn0;StatusListInsert(List&L、inti.ElemTvpee){//在順序線性表L的第i個(gè)位置之前插入新的元素e,i的合法值為l^i^ListLength(L)+lElemTvpe*newbase,*q,*p;if(i<l||i>L.length+l)returnERROR;//i值不合法if(L.length>=LJistsize){〃當(dāng)前存儲(chǔ)空間已滿,增加分配newbase=(ElemT\7pe*)realloc(L.elenL{L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);〃存儲(chǔ)分配失敗L?elem=newbase; 〃新基址*(p+l)=*p;〃插入位置及之后的元素右移*(p+l)=*p;〃插入位置及之后的元素右移*q=e; 〃插入e++L.length; 〃表長(zhǎng)增1returnOK;〃表長(zhǎng)增1}//ListlnseitvoidPriiitList(ListL)//輸出順序表Linti;printfC,\nM);for(i=1;i<=L.length;++i)pimtf("%d”,//輸入元素值#include<stdio.h>#include<stdlib.h>#include”List.h”inta0={3,5,8,ll};mtb[]={2,6,8,9,ll,15,20};StatusequaXElemType^ElemTvpe);voidUnion(List&、List);StatusequaXElemTypex.ElemTypey)returnx==y;voidUnion(List&La.ListLb){//將所有在線性表Lb中但不在La中的數(shù)據(jù)元素插入到La中inti;inte;intLa_lenXb_len;La_len=ListLength(La);Lb_len=ListLengtli(Lb);fbr(i=1;i<=Lb_len;i++)GetElem(Lbj.e);if(!LocateElem(La,e,equal))ListIiiseit(La,++La_len,e);}}//UnioniiitListLa,Lb;IiutList(La);IiutList(Lb);CreateList(La,a,4);CreateList(Lb,b,7);pmitf(”集合A:”);PrintList(La

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論