




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
線性表作業(yè)答案1、編寫算法實現(xiàn)次序表就地逆置。#defineMaxSize<次序表最大元素個數(shù)>typedefstruct
{DataTypelist[MaxSize];
intsize;
}SeqList;
第1頁voidConverseSeqList(SeqList*L){intmid,i;DataTypex;mid=L->size/2;for(i=0;i<mid;i++){x=L->list[i];L->list[i]=L->list[L->size-1-i];L->list[L->size-1-i]=x;}}第2頁2.編寫算法實現(xiàn)單鏈表就地逆置。先定義結(jié)點結(jié)構(gòu):typedefstructNode{DataTypedata;structNode*next;}SLNode;第3頁voidConverseSList(SLNode*head){SLNode*p,*q;p=head->next;head->next=NULL;while(p!=NULL){q=p;p=p->next;q->next=head->next;head->next=q;}}第4頁3、已知線性表中元素以值遞增有序排列,并以單鏈表作存放結(jié)構(gòu)。設(shè)計算法刪除表中全部值大于mink且小于maxk元素。分析:刪除結(jié)點特點:
<=mink>mink<maxk>=maxk第5頁voidDelete_Between(SLNode*L,intmink,intmaxk)//刪除元素遞增排列鏈表L中值大于mink且//小于maxk全部元素
{
SLNode*p,*pre,*q,*s;p=L->next;while(p&&p->data<=mink){pre=p;p=p->next;}if(p){while(p&&p->data<maxk)p=p->next;q=pre->next;pre->next=p;while(q!=p){s=q;q=q->next;free(s);}}
第6頁4、已知A、B和C為三個有序鏈表,編寫算法從A表中刪除B表和C表中共有數(shù)據(jù)元素。分析:被刪元素特點:ai=bj=ck其它元素則為:ai<bj或bj<ck或ck<ai
第7頁設(shè)三個指針pa,pb,pc分別指向這三個鏈表中對應(yīng)結(jié)點,則算法中主要操作為:if(pa->data<pb->data){pre=pa;pa=pa->next;}elseif(pb->data<pc->data)pb=pb->next;elseif(pc->data<pa->data)pc=pc->next;else{pre->next=pa->next;free(pa);pa=pre->next;}循環(huán)條件:三個指針均不為空。第8頁voidDelSame(SLNode*la,SLNode*lb,SLNode*lc){SLNode*pre,*pa,*pb,*pc;pre=la;pa=la->next;pb=lb->next;pc=lc->next;while(pa&&pb&&pc){if(pa->data<pb->data){pre=pa;pa=pa->next;}elseif(pb->data<pc->data)pb=pb->next;elseif(pc->data<pa->data)pc=pc->next;else{pre->next=pa->next;free(pa);pa=pre->next;}}}第9頁5、設(shè)將n(n>1)個整數(shù)存放到一維數(shù)組R中。試設(shè)計一個在時間和空間兩方面盡可能高效算法,將R中序列循環(huán)左移p(0<p<n)個位置,即將R中數(shù)據(jù)由(x0,x1,…,xn-1)變換為(xp,xp+1,…,xn-1,x0,x1,…,xp-1)。要求:(1)給出算法基本設(shè)計思想。(2)依據(jù)設(shè)計思想,采取C或C++語言描述算法,關(guān)鍵之處給出注釋。(3)說明你所設(shè)計算法時間復(fù)雜度和空間復(fù)雜度。第10頁(1)算法基本設(shè)計思想:先將n個數(shù)(x0,x1,…,xp,…,xn-1)原地逆置,得到(xn-1,…,xp,xp-1,…x0),然后再將前n-p個和后p個元素分別原地逆置,得到最終止果:xp,xp+1,…,xn-1,x0,x1,…,xp-1。算法能夠用兩個函數(shù)實現(xiàn):一個是逆置函數(shù)reverse(),它將給定數(shù)據(jù)逆置;另一個是循環(huán)左移函數(shù)leftShift(),它調(diào)用reverse()函數(shù)三次,實現(xiàn)對應(yīng)功效。第11頁(2)算法實現(xiàn):voidreverse(intr[],intleft,intright){intk=left,j=right,temp;//k等于左邊界left,j等于右邊界rightwhile(k<j){//交換r[k]與r[j]temp=r[k];r[k]=r[j];r[j]=temp;k++;//k右移一個位置j--;//j左移一個位置}}第12頁voidleftShift(intr[],intn,intp){if(p>0&&p<n){reverse(r,0,n-1);//將全部數(shù)據(jù)逆置reverse(r,0,n-p-1);//將前n-p個元素逆置reverse(r,n-p,n-1);//將后p個元素逆置}}(3)算法時間復(fù)雜度為O(n),空間復(fù)雜度為O(1)。第13頁6、假設(shè)利用兩個線性表LA和LB分別表示兩個集合A和B(即:線性表中數(shù)據(jù)元素即為集合中組員),現(xiàn)要求一個新集合A=A∪B。采取單鏈表作為存放結(jié)構(gòu),編寫算法。
上述問題等價于:要求對線性表作以下操作:擴大線性表LA,將存在于線性表LB中而不存在于線性表LA中數(shù)據(jù)元素插入到線性表LA中去。
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度競業(yè)協(xié)議失效一個月競業(yè)限制解除補償合同
- 二零二五年度大型商場裝修合同(含室內(nèi)外環(huán)境美化)
- 二零二五年度特色主題展臺設(shè)計制作安裝一體化合同
- 二零二五年度紋身技藝培訓(xùn)與加盟合作協(xié)議
- 二零二五年度新能源產(chǎn)業(yè)臨時研發(fā)人員服務(wù)協(xié)議
- 2025年度網(wǎng)絡(luò)安全防護合同價款調(diào)整與網(wǎng)絡(luò)安全事件應(yīng)對
- 二零二五年度虛擬現(xiàn)實產(chǎn)業(yè)利潤分配協(xié)議書
- 二零二五年度搏擊教練員免責(zé)責(zé)任書
- 農(nóng)業(yè)現(xiàn)代化技術(shù)推廣合作協(xié)議
- 智能建筑系統(tǒng)合同
- 2023年全國高考體育單招考試英語試卷試題真題(精校打印版)
- 2023年四川省綿陽市中考化學(xué)試卷真題(含答案與解析)
- 財務(wù)管理中的財務(wù)指標(biāo)
- 2016-2023年青島酒店管理職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 第二章-環(huán)境數(shù)據(jù)統(tǒng)計與分析
- 電力各種材料重量表總
- 腸道健康講座活動策劃
- 醫(yī)療器械(耗材)項目投標(biāo)服務(wù)投標(biāo)方案(技術(shù)方案)
- 小學(xué)三年級下冊數(shù)學(xué)教案3篇
- pci術(shù)后術(shù)肢腫脹處理流程
- 遼寧省營口市2023-2024學(xué)年七年級上學(xué)期期末英語試題
評論
0/150
提交評論