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