版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1自考自考0233102331數(shù)據(jù)結(jié)構重點總結(jié)數(shù)據(jù)結(jié)構重點總結(jié)(最終修訂最終修訂)第一章第一章概論概論1.瑞士計算機科學家沃思提出:算法數(shù)據(jù)結(jié)構=程序。算法是對數(shù)據(jù)運算的描述,而數(shù)據(jù)結(jié)構包括邏輯結(jié)構和存儲結(jié)構。由此可見,程序設計的實質(zhì)是針對實際問題選擇一種好的數(shù)據(jù)結(jié)構和設計一個好的算法,而好的算法在很大程度上取決于描述實際問題的數(shù)據(jù)結(jié)構。2.2.數(shù)據(jù)數(shù)據(jù)是信息的載體。數(shù)據(jù)元素數(shù)據(jù)元素是數(shù)據(jù)的基本單位。一個數(shù)據(jù)元素可以由若干個數(shù)據(jù)項數(shù)據(jù)項
2、組成,數(shù)據(jù)項數(shù)據(jù)項是具有獨立含義的最小標識單位。數(shù)據(jù)對象數(shù)據(jù)對象是具有相同性質(zhì)的數(shù)據(jù)元素的集合。3.3.數(shù)據(jù)結(jié)構數(shù)據(jù)結(jié)構指的是數(shù)據(jù)元素之間的相互關系,即數(shù)據(jù)的組織形式。數(shù)據(jù)結(jié)構一般包括以下三方面內(nèi)容:數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的存儲結(jié)構、數(shù)據(jù)的運算數(shù)據(jù)結(jié)構一般包括以下三方面內(nèi)容:數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的存儲結(jié)構、數(shù)據(jù)的運算①數(shù)據(jù)的邏輯結(jié)構是從邏輯關系上描述數(shù)據(jù),與數(shù)據(jù)元素的存儲結(jié)構無關,是獨立于計算機的。數(shù)據(jù)的邏輯結(jié)構分類數(shù)據(jù)的邏輯結(jié)構分類:線
3、性結(jié)構和非線性結(jié)構。線性表線性表是一個典型的線性結(jié)構。棧、隊列、串等都是線性結(jié)構。數(shù)組、廣義表、樹和圖等數(shù)據(jù)結(jié)構都是非線性結(jié)構。②數(shù)據(jù)元素及其關系在計算機內(nèi)的存儲方式,稱為數(shù)據(jù)的存儲結(jié)構(物理結(jié)構)數(shù)據(jù)的存儲結(jié)構(物理結(jié)構)。數(shù)據(jù)的存儲結(jié)構是邏輯結(jié)構用計算機語言的實現(xiàn),它依賴于計算機語言。③數(shù)據(jù)的運算數(shù)據(jù)的運算。最常用的檢索、插入、刪除、更新、排序等。4.數(shù)據(jù)的四種基本存儲方法數(shù)據(jù)的四種基本存儲方法:順序存儲、鏈接存儲、索引存儲、散列存
4、儲(1)順序存儲:通常借助程序設計語言的數(shù)組數(shù)組描述。(2)鏈接存儲:通常借助于程序語言的指針來描述。(3)索引存儲:索引表由若干索引項組成。關鍵字是能唯一標識一個元素的一個或多個數(shù)據(jù)項的組合。(4)散列存儲:該方法的基本思想是:根據(jù)元素的關鍵字直接計算出該元素的存儲地址。5.算法必須滿足5個準則:輸入輸入,0個或多個數(shù)據(jù)作為輸入;輸出輸出,產(chǎn)生一個或多個輸出;有窮性有窮性,算法執(zhí)行有限步后結(jié)束;確定性確定性,每一條指令的含義都明確;可
5、行性可行性,算法是可行的。算法與程序的區(qū)別:程序必須依賴于計算機程序語言,而一個算法可用自然語言、計算機程序語言、數(shù)學語言或約定的符號語言來描述。目前常用的描述算法語言有兩類:類Pal和類C。6.評價算法的優(yōu)劣:算法的“正確性“是首先要考慮的。此外,主要考慮如下三點:①執(zhí)行算法所耗費的時間,即時間復雜性;②執(zhí)行算法所耗費的存儲空間,主要是輔助空間,即空間復雜性;③算法應易于理解、易于編程,易于調(diào)試等,即可讀性和可操作性。以上幾點最主要的
6、是時間復雜性,時間復雜度常用漸進時間復雜度表示。7.算法求解問題的輸入量輸入量稱為問題的規(guī)模用一個正整數(shù)n表示。8.常見的時間復雜度按數(shù)量級遞增排列依次為:常數(shù)階0(1)、對數(shù)階0(log2n)、線性階0(n)、線性對數(shù)階0(nlog2n)、平方階0(n2)立方階0(n3)、…、k次方階0(nk)、指數(shù)階0(2n)和階乘階0(n!)。9.一個算法的空間復雜度S(n)定義為該算法所耗費的存儲空間,它是問題規(guī)模n的函數(shù)它包括存儲算法本身所占
7、的存儲空間、算法的輸入輸出數(shù)據(jù)所占的存儲空間和算法在運行過程中臨時占用的存儲空間。第二章第二章線性表線性表1.數(shù)據(jù)的運算是定義在邏輯結(jié)構上的,而運算的具體實現(xiàn)是在存儲結(jié)構上進行的。2.只要確定了線性表存儲的起始位置,線性表中任意一個元素都可隨機存取,所以順序表是一種隨機存取結(jié)構。3.常見的線性表的基本運算:(1)置空表InitList(L)構造一個空的線性表L。(2)求表長ListLength(L)求線性表L中的結(jié)點個數(shù),即求表長。(3
8、)GetNode(L,i)取線性表L中的第i個元素。(4)LocateNode(L,x)在L中查找第一個值為x的元素,并返回該元素在L中的位置。若L中沒有元素的值為x,則返回0值。(5)List(L,i,x)在線性表L的第i個元素之前插入一個值為x的新元素,表L的長度加1。(6)List(L,i)刪除線性表L的第i個元素,刪除后表L的長度減1。4.順序存儲方法:把線性表的數(shù)據(jù)元素按邏輯次序依次存放在一組地址連續(xù)的存儲單元里的方法。順序表
9、(SequentialList):用順序存儲方法存儲的線性表稱為順序表。順序表順序表是一種隨機存取結(jié)構隨機存取結(jié)構順序表的特點是邏輯上相鄰的結(jié)點其物理位置亦相鄰。3r=srnext=NULL終端結(jié)點的指針域置空,或空表的頭結(jié)點指針域置空以上三個算法的時間復雜度均為以上三個算法的時間復雜度均為O(n)O(n)。8.單鏈表上的查找:(帶頭結(jié)點)(1)按結(jié)點序號查找:序號為0的是頭結(jié)點。算法:p=headj=0從頭結(jié)點開始掃描while(pn
10、extjif(i==j)returnp找到了第i個結(jié)點elsereturnNULL當i0時,找不到第i個結(jié)點時間復雜度:在等概率假設下,平均時間復雜度為:為時間復雜度:在等概率假設下,平均時間復雜度為:為n2=O(n)n2=O(n)(2)按結(jié)點值查找:具體算法:ListNodep=headnext從開始結(jié)點比較。表非空,p初始值指向開始結(jié)點while(p掃描下一結(jié)點returnp若p=NULL,則查找失敗,否則p指向值為key的結(jié)點時間
11、復雜度為:時間復雜度為:O(n)O(n)9.插入運算:插入運算是將值為x的新結(jié)點插入到表的第i個結(jié)點的位置上,即插入到ai1與ai之間。s=(ListNode)malloc(sizeof(ListNode))②sdata=x③snext=pnext④pnext=s⑤算法的時間主要耗費在查找結(jié)點上,故時間復雜度亦為O(n)。10.刪除運算刪除運算r=pnext②使r指向被刪除的結(jié)點aipnext=rnext③將ai從鏈上摘下free(r)
12、④釋放結(jié)點ai的空間給存儲池算法的時間復雜度也是O(n).p指向被刪除的前一個結(jié)點。鏈表上實現(xiàn)的插入和刪除運算,無須移動結(jié)點,僅需修改指針。11.單循環(huán)鏈表—在單鏈表中,將終端結(jié)點的指針域NULL改為指向表頭結(jié)點或開始結(jié)點即可。判斷空鏈表的條件是head==headnext12.僅設尾指針的單循環(huán)鏈表僅設尾指針的單循環(huán)鏈表:用尾指針rear表示的單循環(huán)鏈表對開始結(jié)點a1和終端結(jié)點an查找時間都是O(1)。而表的操作常常是在表的首尾位置上
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自考02331數(shù)據(jù)結(jié)構重點總結(jié)(最終修訂)
- 自學考試數(shù)據(jù)結(jié)構重點總結(jié)02331(2014整理)
- 數(shù)據(jù)結(jié)構02331
- 2022年自考數(shù)據(jù)結(jié)構02331試題及答案
- 自學專業(yè)考試數(shù)據(jù)結(jié)構重點總結(jié)分析02331(2014整理)
- 2022年自考數(shù)據(jù)結(jié)構02331試題及答案
- 2017年4月自考02331數(shù)據(jù)結(jié)構試卷及答案解釋
- 自考數(shù)據(jù)結(jié)構02331歷年試題及答案20092015個人整理版
- 自考數(shù)據(jù)結(jié)構課后習題答案
- 數(shù)據(jù)結(jié)構復習重點歸納
- 《數(shù)據(jù)結(jié)構》實驗指導書最終
- 數(shù)據(jù)結(jié)構復習總結(jié)
- 自考數(shù)據(jù)結(jié)構作業(yè)題及解析
- 自考數(shù)據(jù)結(jié)構歷年試題及答案
- 數(shù)據(jù)結(jié)構課程各章的重點及要點
- 《數(shù)據(jù)結(jié)構(c語言版)》復習重點
- 《數(shù)據(jù)結(jié)構》知識點總結(jié)
- 2024年4月自考02142數(shù)據(jù)結(jié)構導論試題
- 自考數(shù)據(jù)結(jié)構筆記(超級詳細-可做考試條)
- 數(shù)據(jù)結(jié)構
評論
0/150
提交評論