數(shù)據(jù)結(jié)構(gòu)專業(yè)筆記_第1頁
數(shù)據(jù)結(jié)構(gòu)專業(yè)筆記_第2頁
數(shù)據(jù)結(jié)構(gòu)專業(yè)筆記_第3頁
數(shù)據(jù)結(jié)構(gòu)專業(yè)筆記_第4頁
數(shù)據(jù)結(jié)構(gòu)專業(yè)筆記_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)構(gòu)造筆記基本:數(shù)據(jù)構(gòu)造與算法(一)數(shù)據(jù)構(gòu)造基本概念數(shù)據(jù)(data):是對客觀事物日勺符號表達,在計算機科學(xué)中是指所有能輸入到計算機中并被 計算機程序解決日勺符號總稱數(shù)據(jù)元素(data element):是數(shù)據(jù)勺基本單位,在計算機中一般被當(dāng)做一種整體進行考慮 和解決數(shù)據(jù)對象(data object):性質(zhì)相似日勺數(shù)據(jù)元素日勺集合,是數(shù)據(jù)日勺一種子集數(shù)據(jù)構(gòu)造(data structure):互相之間存在一種或多種特定關(guān)系日勺數(shù)據(jù)元素日勺集合4類基本構(gòu)造:集合、線性構(gòu)造、樹形構(gòu)造、圖形(網(wǎng)狀)構(gòu)造數(shù)據(jù)構(gòu)造日勺形式定義為數(shù)據(jù)構(gòu)造是一種二元組Data Structure = (D,S),其中D是數(shù)據(jù)

2、元素 日勺有限集,S是D上關(guān)系勺有限集數(shù)據(jù)構(gòu)造定義中勺“關(guān)系”描述日勺是數(shù)據(jù)元素之間日勺邏輯關(guān)系,因此又稱為數(shù)據(jù)日勺邏輯構(gòu)造數(shù)據(jù)構(gòu)造在計算機中日勺表達(映像)稱為物理構(gòu)造(存儲構(gòu)造)計算機中表達信息日勺最小單位是二進制中日勺一位,叫做位(bit),一到若干位構(gòu)成一種位 串表達一種數(shù)據(jù)元素,這個位串稱為元素或結(jié)點數(shù)據(jù)構(gòu)造之間關(guān)系在計算機中勺表達有兩種:順序映像、非順序映像,并由此得到兩種存儲 構(gòu)造:順序存儲、鏈式存儲,前者運用相對位置表達數(shù)據(jù)元素間勺邏輯構(gòu)造,后者借助指針任何一種算法日勺設(shè)計取決于數(shù)據(jù)(邏輯)構(gòu)造,而實現(xiàn)依賴于存儲構(gòu)造數(shù)據(jù)類型是一種值日勺集合和定義在這個值集上日勺一組操作日勺總稱

3、數(shù)據(jù)類型分兩種:原子類型、構(gòu)造類型,前者不可分解(例如int、char、float、void ),后者構(gòu)造類型由若干成分按某種構(gòu)造構(gòu)成,可分解,成分既可以是非構(gòu)造日勺也可以是構(gòu)造勺(例:數(shù)組)抽象數(shù)據(jù)類型(Abstract Data Type ):是指一種數(shù)學(xué)模型及定義在該模型上日勺一組操作(P8)抽象數(shù)據(jù)類型格式如下:ADT抽象數(shù)據(jù)類型名數(shù)據(jù)對象: 數(shù)據(jù)對象日勺定義數(shù)據(jù)關(guān)系: 數(shù)據(jù)關(guān)系勺定義數(shù)據(jù)操作: 數(shù)據(jù)操作日勺定義ADT抽象數(shù)據(jù)類型名基本操作格式如下:基本操作名(參數(shù)表)初始條件: 初始條件描述操作成果: 操作成果描述多形數(shù)據(jù)類型(polymorphic data type):是指其值得

4、成分不擬定日勺數(shù)據(jù)類型(P9)抽象數(shù)據(jù)類型可由固有數(shù)據(jù)類型來表達和實現(xiàn)(二)算法(概念)和算法分析(時、空性能)算法(algorithm):對特定問題求解環(huán)節(jié)日勺一種描述算法5特性:有窮、擬定、可行、輸入、輸出1、有窮性:算法必須在可接受勺時間內(nèi)執(zhí)行有窮步后結(jié)束2、擬定性:每條指令必須要有確切含義,無二義性,并且只有唯一執(zhí)行途徑,即對相似勺 輸入只能得相似輸出3、可行性:算法中勺操作都可通過已實現(xiàn)勺基本運算執(zhí)行有限次來完畢4、輸入:一種算法有一到多種輸入,并取自某個特定對象合集5、輸出:一種算法有一到多種輸出,這些輸出與輸入有著某些特定關(guān)系勺量算法設(shè)計規(guī)定(好算法):對勺性、可讀性、強健性、效

5、率與低存儲需求強健性是指對于規(guī)范規(guī)定以外勺輸入可以判斷出這個輸入不符合規(guī)范規(guī)定,并能有合理勺解 決方式。算法效率勺度量:(1)事后記錄:程序運營結(jié)束后借助計算機內(nèi)部計時功能,缺陷一是必須先運營根據(jù)算法 編制勺程序,二是受限于計算機軟硬件,導(dǎo)致掩蓋了算法自身勺優(yōu)劣(2)事前分析估計:消耗時間影響因素:算法方略、問題規(guī)模、編程語言、編譯程序產(chǎn)生勺機器碼質(zhì)量、 機器執(zhí)行指令勺速度撇開多種影響因素只考慮問題日勺規(guī)模(一般用整數(shù)量n表達),記為問題規(guī)模日勺函數(shù) 算法時間取決于控制構(gòu)造(順序,分支,循環(huán))和固有數(shù)據(jù)類型操作日勺綜合效果書寫格式:T (n) = O (f (n) f (n)為n日勺某個函數(shù)時

6、間復(fù)雜度:算法日勺漸近時間復(fù)雜度(asymptotic time complexity),它表達隨問題規(guī)模日勺增大,算法執(zhí)行時間日勺增長率和f (n)日勺增長率相似以循環(huán)最深層原操作為度量基準頻度:該語句反復(fù)執(zhí)行日勺次數(shù)算法日勺存儲空間需求:空間復(fù)雜度(space complexity):算法所需存儲空間度量,記作S (n) = O (f (n),其中n為問題規(guī)模日勺大小排序方法時間復(fù)雜度,空標】夏茱 及穩(wěn);t,性復(fù)雜性平均情況最壞,清況最好恃 況直接插入搏 序O(n2)0(1/)O(n)0(1)希爾排序O(nlog2ii)0(1)不檎定轉(zhuǎn)復(fù)雜冒泡耕序O(n2)O(n;)O(n)0(1)簡單決

7、速排序(.h2)()(llog2lk不穩(wěn)定直接逸擇排 序o(n2)0(1/)O(n2)0(1)不穩(wěn)定理排序O(nl*g2ii)(lll4g211 XV不荏定疫復(fù)雜歸升排序OfnlojEJii)O(iilog2ii)O(lllog2100(10較復(fù)雜基戳插序(tl(ll+l )bcci cscn.cc我夏雜 rnMhuslei、線性表(一)線性表基本概念線性表(linear_list): n個數(shù)據(jù)元素日勺有限序列構(gòu)造特點:存在唯一日勺被稱作“第一種”、“最后一種”勺數(shù)據(jù)元素,且除了第一種以外每 個元素均有唯一前驅(qū),除最后一種以外均有唯一后繼在復(fù)雜線性表中存在:數(shù)據(jù)項- 記錄- 文獻,例如每個學(xué)生

8、狀況為一種記錄,它由學(xué)號、性 別.數(shù)據(jù)項構(gòu)成,多種學(xué)生記錄構(gòu)成一種文獻在形如(a1,.,ai-1,ai,ai+1,.,an)中,ai-1 領(lǐng)先于 ai,ai 領(lǐng)先于 ai+1,且形成直接前驅(qū)元素,直接后繼元素關(guān)系元素個數(shù)n定義為線性表長度,n=0為空表有關(guān)操作算法見書(P20)(二)線性表順序存儲構(gòu)造和鏈式存儲構(gòu)造(1)線性表順序表達和實現(xiàn)線性表順序存儲在一組持續(xù)勺存儲單元中,鏈式存儲則不規(guī)定;順序構(gòu)造可以隨機訪問,鏈 式構(gòu)造可以無限擴容擬定存儲位置(計算公式):第i個元素:LOC (ai) = LOC (a1) + (i-1) *L L是偏移量,即每個元素占用存儲單元第ai+1個元素:LOC

9、 (ai+1) = LOC (ai) +L a1 (起始地址或基地址)C語言下標從“0”開始,則表中第i個元素是L.elem i-1當(dāng)對線性表進行操作時,被操作元素背面日勺元素角標會相應(yīng)變化(前移、后移),算法(P24)(2)線性表鏈式表達和實現(xiàn)特點:用一組任意勺存儲單元存儲線性表勺數(shù)據(jù)元素(存儲單元不一定持續(xù))結(jié)點存儲數(shù)據(jù)元素及直接后繼勺存儲位置信息,兩個域:數(shù)據(jù)域和指針域,指針域中存儲勺 信息稱為指針或鏈,僅具有一種指針域故又稱線性鏈表或單鏈表鏈表勺插入:先增長一條指針再修改原指針頭指針指向第一種數(shù)據(jù)元素勺存儲位置,最后一種結(jié)點勺指針為空(NULL)鏈表表達措施及算法(P28)單鏈表第一種

10、結(jié)點前加一種頭結(jié)點Head,其數(shù)據(jù)域可為空也可存儲某些附加信息(鏈長等) 假設(shè)p是指向線性表中i個元素(ai)勺指針,則p-next是指向i+1個數(shù)據(jù)元素在單鏈表中,獲得第i個元素必須從頭指針開始尋找,因此單鏈表是非隨機勺存儲構(gòu)造 線性表指邏輯構(gòu)造,從抽象數(shù)據(jù)層面來說順序表和鏈表指物理存儲構(gòu)造邏輯構(gòu)造:離散、線性、層次、網(wǎng)狀應(yīng)用見書算法二、棧和隊列(一)棧的基本概念棧(stack)是限定僅在表尾進行插入或刪除操作日勺線性表表尾為棧頂,表頭為棧底,遵循后進先出原理(last in first on, LIFO),不含元素則 為空棧操作:在棧頂插入(入棧)和刪除(出棧),棧初始化、判空、取棧頂元素(算法P45)(二)棧的順序存儲和鏈式存儲順序棧,即棧勺順序存儲構(gòu)造是運用一組持續(xù)勺存儲單元依次寄存自棧底到棧頂勺數(shù)據(jù)元 素,同步附設(shè)指針top批示棧頂元素在順序棧中勺位置初始棧時不應(yīng)限定棧勺最大容量,基

溫馨提示

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

最新文檔

評論

0/150

提交評論