數(shù)據(jù)結(jié)構(gòu)作業(yè)系統(tǒng)答案_第1頁
數(shù)據(jù)結(jié)構(gòu)作業(yè)系統(tǒng)答案_第2頁
數(shù)據(jù)結(jié)構(gòu)作業(yè)系統(tǒng)答案_第3頁
數(shù)據(jù)結(jié)構(gòu)作業(yè)系統(tǒng)答案_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、試以k+1作為監(jiān)視哨改寫教材節(jié)中給出的直接插入排序算法。其中,為待排序記錄且k<MAXSIZEo實(shí)現(xiàn)下列函數(shù):voidlnsertSort(SqList&L);順序表的類型SqList定義如下:typedefstructKeyTypekey;RedType;typedefstructRedTyperMAXSIZE+1;.RedType;typedefstructRedTyperMAXSIZE+1;.,kp是堆,則可以寫一個(gè)時(shí)間復(fù)雜度為O(log(n)的算法將(法,k2,kp,kp+1)調(diào)整為堆。試編寫”從p=1起,逐個(gè)插入建堆”的算法,并討論由此方法建堆的時(shí)間復(fù)雜度。實(shí)現(xiàn)下列函數(shù)

2、:voidCreateHeap(HeapType&h,char*s);堆(順序表)的類型HeapType定義如下:typedefcharKeyType;typedefstructKeyTypekey;RedType;typedefstructRedTyperMAXSIZE+1;intlength;SqList,HeapType;voidCreateHeap(HeapType&h,char*s)(inti,j,locate,k;KeyTypee;=0;for(i=0;si!=,0,;i+)+;.key=si;e=.key;locate=;k=2;for(j=;k>0;j=j

3、/2,k=j/2)(if(e<k.key)(j.key=k.key;locate=k;)locate.key=e;假設(shè)定義堆為滿足如下性質(zhì)的完全三叉樹:空樹為堆;根結(jié)點(diǎn)的值不小于所有子樹根的值,且所有子樹均為堆。編寫利用上述定義的堆進(jìn)行排序的算法,并分析推導(dǎo)算法的時(shí)間復(fù)雜度。實(shí)現(xiàn)下列函數(shù):voidHeapSort(HeapType&h);堆(順序表)的類型HeapType定義如下:typedefcharKeyType;typedefstructKeyTypekey;RedType;typedefstructRedTyperMAXSIZE+1;intlength;SqList,He

4、apType;比較函數(shù)和交換函數(shù):StatusLT(RedTypea,RedTypeb)return<TRUE:FALSE;StatusGT(RedTypea,RedTypeb)return>TRUE:FALSE;voidSwap(RedType&a,RedType&b)RedTypec;c=a;a=b;b=c;voidHeapAdjust(HeapType&H,intsjntm)intj,flag;RedTyperc;rc=s;for(j=3*s-1;j<=m;j=3*j-1)(flag=O;printf(nDo%dnHJ);if(j<m&am

5、p;&LTj,j+1)j+;flag=1;printf(巧;if(flag)if(j<m&&LTj,D+1)j+;elseif0+1<m&&LTO,O+2)j=j+2;if(!LT(rc,O)break;s=0;s=j;s=rc;|voidHeapSort(HeapType&h)/*元素比較和交換必須調(diào)用以下比較函數(shù)和交換函數(shù):*/*StatusLT(RedTypea,RedTypeb);比較:"<"*/*StatusGT(RedTypea,RedTypeb);比較:*/*voidSwap(RedType&a

6、mp;a,RedType&b);交換*/(inti;RedType;typedefstructRedTyperMAXSIZE+1;ey)(temp=j;k=j;temp=i;i=M;k=temp;if%2=0)n=2;elsen=2+1;returnn.key;已知記錄序列a1.n中的關(guān)鍵字各不相同,可按如下所述實(shí)現(xiàn)計(jì)數(shù)排序:另設(shè)數(shù)組c1.n,對(duì)每個(gè)記錄ai,統(tǒng)計(jì)序列中關(guān)鍵字比它小的記錄個(gè)數(shù)存于ci,則ci=O的記錄必為關(guān)鍵字最小的記錄,然后依ci值的大小對(duì)a中記錄進(jìn)行重新排列,試編寫算法實(shí)現(xiàn)上述排序方法。實(shí)現(xiàn)下列函數(shù):voidCountSort(SqList&L);/*采用順序表存儲(chǔ)結(jié)構(gòu),存儲(chǔ)序列a,為n*/*在函數(shù)內(nèi)自行定義計(jì)數(shù)數(shù)組c7順序表的類型SqList定義如下:typedefstructKeyTypekey;RedType;typedefs

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論