例題講解 數(shù)據(jù)結(jié)構(gòu)算法_第1頁
例題講解 數(shù)據(jù)結(jié)構(gòu)算法_第2頁
例題講解 數(shù)據(jù)結(jié)構(gòu)算法_第3頁
例題講解 數(shù)據(jù)結(jié)構(gòu)算法_第4頁
例題講解 數(shù)據(jù)結(jié)構(gòu)算法_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

例題講解基本概念什么是數(shù)據(jù)?什么是數(shù)據(jù)元素?什么是數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的要素是什么?數(shù)據(jù)邏輯結(jié)構(gòu)的分類。數(shù)據(jù)存儲結(jié)構(gòu)的分類。數(shù)據(jù)類型與抽象數(shù)據(jù)類型。算法的概念及五個要素。算法的性能分析:時間復(fù)雜度和空間復(fù)雜度。C<log2n<n<nlog2n<n2<n3<2n<3n<n!<nn順序存儲表示數(shù)據(jù)元素之間的邏輯關(guān)系是由()表示的,鏈接存儲表示數(shù)據(jù)元素之間的邏輯關(guān)系是由()表示的。A指針 B邏輯順序 C存儲位置 D問題的上下文下面關(guān)于抽象數(shù)據(jù)類型的描述,不正確的是()。A數(shù)據(jù)封裝 B使用與實現(xiàn)分離 C信息隱藏 D用例驅(qū)動算法的時間復(fù)雜度與()有關(guān)。A問題規(guī)模 B計算機硬件的運行速度 C源程序的長度 D編譯后執(zhí)行程序的質(zhì)量某算法的時間復(fù)雜度是O(n2),表明該算法()。A問題規(guī)模是n2B問題規(guī)模與n2成正比 C執(zhí)行時間等于n2

D執(zhí)行時間與n2成正比以下關(guān)于數(shù)據(jù)結(jié)構(gòu)的說法中,錯誤的是()。A數(shù)據(jù)結(jié)構(gòu)相同,對應(yīng)的存儲結(jié)構(gòu)也相同B數(shù)據(jù)結(jié)構(gòu)涉及數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及操作三個方面C數(shù)據(jù)結(jié)構(gòu)操作的實現(xiàn)與存儲結(jié)構(gòu)有關(guān)D定義邏輯結(jié)構(gòu)時可不考慮存儲結(jié)構(gòu)試舉一個例子,說明對相同的邏輯結(jié)構(gòu),同一種運算在不同的存儲方式下實現(xiàn),其運算效率不同。答:例如,線性表中的插入與刪除操作,在順序存儲方式下平均移動近一半的元素,時間復(fù)雜度為O(n);而在鏈?zhǔn)酱鎯Ψ绞较?,插入與刪除時間復(fù)雜度都是O(1)。數(shù)組元素循環(huán)右移K位—時空權(quán)衡設(shè)計一個算法,將數(shù)組A[0..n-1]中的元素循環(huán)右移K位。要求只用一個元素大小的附加存儲,元素移動或交換次數(shù)為O(n)。算法一:采用K次循環(huán)進行右移。算法二:采用K個輔助空間的右移K位。算法三:右移K位的海豚算法。算法四:利用三組置逆,完成右移K位。有實現(xiàn)同一功能的兩個算法A1和A2,其中A1的漸近時間復(fù)雜度T1(n)=O(2n),A2的漸近時間復(fù)雜度是T2(n)=O(n2)。僅就時間復(fù)雜度,具體分析這兩個算法哪個好?分析:比較算法好壞需要比較兩個函數(shù)。線性表定義線性表的特點線性表的操作例seq例seq1:設(shè)有一個線性表(e1,e2,e3,…,en)存放在一個一維數(shù)組A的前n個數(shù)組元素位置。請編寫一個函數(shù)將這個線性表原地逆置,即將數(shù)組的前n個原址內(nèi)容轉(zhuǎn)換為(en,…,e3,e2,e1)。例seq2:假定數(shù)組A[n]中有多個零元素,試寫出一個函數(shù),將A中所有的非零元素依次移到數(shù)組A的前端A[i](0<=i<=n-1)。例seq3:試編寫一個函數(shù),將一個有n個非零元素的整數(shù)一維數(shù)組A[n]拆分為兩個一維數(shù)組,使得A[]中大于零的元素存放在B[]中,小于零的元素存放在C[]中。例seq4:已知在一維數(shù)組A[m+n]中依次存放著兩個順序表(a1,a2,…,am)和(b1,b2,…,bn)。試編寫一個函數(shù),將數(shù)組中兩個順序表的位置互換,即將(b1,b2,…,bn)放在(a1,a2,…,am)的前面。例seq5:試編寫一個函數(shù),以不多于3*n/2的平均比較次數(shù),在一個有n個整數(shù)的順序表A中找出具有最大值和最小值的整數(shù)。Seq綜合基于線性表的順序存儲表示(順序表)實現(xiàn)以下函數(shù)。(1)從順序表中刪除具有最小值的元素并由函數(shù)返回被刪除元素的值??粘龅奈恢糜勺詈笠粋€元素填補,若順序表為空則顯示出錯信息并退出運行。(2)從順序表中刪除第i個元素并由函數(shù)返回被刪元素的值。如果i不合理或順序表為空則顯示出錯信息并退出運行。(3)向順序表中第i個位置插入一個新的元素。如果i不合理則顯示出錯信息并退出運行。(4)從順序表中刪除具有給定值x的所有元素。(5)從順序表中刪除其值在給定值s與t之間(要求s小于或等于t)的所有元素,如果s或t不合理或順序表為空則顯示出錯信息并退出運行。(6)從有序順序表中刪除其值在給定值s與t之間(要求s小于或等于t)的所有元素,如果s或t不合理或順序表為空則顯示出錯信息并退出運行。(7)將兩個有序順序表合并成一個新的有序順序表,并由函數(shù)返回結(jié)果順序表。(8)從有序順序表中刪除所有值重復(fù)的元素,使表中所有元素的值均不相同。Li叉nk例題例Li景nk宋1:針對壞帶表鴉頭結(jié)捉點的凱單鏈寇表編擱寫以樓下函嚼數(shù)。(1)定劑位函居數(shù)Lo介ca且te:在備單鏈暖表中錢尋找搬第i個結(jié)峰點。濾若找闖到,羨則函詢數(shù)返綁回第i個結(jié)嘗點的蒸地址需;若茅找不疫到,森則函仆數(shù)返伐回NU旋LL。(2)求坑最大帶值函蠶數(shù)ma膏x:通伍過一緩趟遍脹歷在您單鏈告表中酒確定委值最個大的蓋結(jié)點芹。(3)統(tǒng)摘計函俗數(shù)nu寺mb吵er:統(tǒng)嘉計單云鏈表確中具推有給均定值x的所墊有元駱?biāo)?。?)建綱立函灶數(shù)cr欠ea宵te:根聰據(jù)一書維數(shù)枕組a[避n]建立可一個顫單鏈緣瑞表,好使單臭鏈表佳中各翼元素貍的次情序與a[麗n]中各病元素會的次后序相均同,矮要求軍該程伶序的悼時間城復(fù)雜毅度為O(荷n)。(5)整歉理函泡數(shù)ti箱dy旅up:在午非遞溜減有為序的學(xué)單鏈糕表中豪刪除右值相陰同的丙多余免的結(jié)后點。例Li杯nk差2:設(shè)ha和hb分別腦是兩會個帶幕表頭原結(jié)點那的非走遞減僅有序策單鏈弦表的啟表頭念指針旋,試伍設(shè)計新一個號算法懲,將鈴這兩辜個有授序鏈寧表合

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論