久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

時間:2019-05-15 09:53:36下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)》。

第一篇:2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

數(shù)據(jù)結(jié)構(gòu)各章復(fù)習(xí)要點(diǎn)總結(jié)

第一章 概 論

數(shù)據(jù)就是指能夠被計(jì)算機(jī)識別、存儲和加工處理的信息的載體。

數(shù)據(jù)元素是數(shù)據(jù)的基本單位,可以由若干個數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)項(xiàng)是具有獨(dú)立含義的最小標(biāo)識單位。

數(shù)據(jù)結(jié)構(gòu)的定義:

·邏輯結(jié)構(gòu):從邏輯結(jié)構(gòu)上描述數(shù)據(jù),獨(dú)立于計(jì)算機(jī)。

·線性結(jié)構(gòu):一對一關(guān)系。

·線性結(jié)構(gòu):多對多關(guān)系。

·存儲結(jié)構(gòu):是邏輯結(jié)構(gòu)用計(jì)算機(jī)語言的實(shí)現(xiàn)。

·順序存儲結(jié)構(gòu):如數(shù)組。

·鏈?zhǔn)酱鎯Y(jié)構(gòu):如鏈表。

·稠密索引:每個結(jié)點(diǎn)都有索引項(xiàng)。

·稀疏索引:每組結(jié)點(diǎn)都有索引項(xiàng)。

·散列存儲結(jié)構(gòu):如散列表。

·對數(shù)據(jù)的操作:定義在邏輯結(jié)構(gòu)上,每種邏輯結(jié)構(gòu)都有一個運(yùn)算集合。

·常用的有:檢索、插入、刪除、更新、排序。

·數(shù)據(jù)類型:是一個值的集合以及在這些值上定義的一組操作的總稱。

·原子類型:由語言提供。

·結(jié)構(gòu)類型:由用戶借助于描述機(jī)制定義,是導(dǎo)出類型。

抽象數(shù)據(jù)類型ADT:

·是抽象數(shù)據(jù)的組織和與之的操作。相當(dāng)于在概念層上描述問題。

·優(yōu)點(diǎn)是將數(shù)據(jù)和操作封裝在一起實(shí)現(xiàn)了信息隱藏。

程序設(shè)計(jì)的實(shí)質(zhì)是對實(shí)際問題選擇一種好的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)一個好的算法。算法取決于數(shù)據(jù)結(jié)構(gòu)。

算法是一個良定義的計(jì)算過程,以一個或多個值輸入,并以一個或多個值輸出。

評價算法的好壞的因素:

·算法是正確的;

·執(zhí)行算法的時間;

·執(zhí)行算法的存儲空間(主要是輔助存儲空間);

·算法易于理解、編碼、調(diào)試。

時間復(fù)雜度:是某個算法的時間耗費(fèi),它是該算法所求解問題規(guī)模n的函數(shù)。

漸近時間復(fù)雜度:是指當(dāng)問題規(guī)模趨向無窮大時,該算法時間復(fù)雜度的數(shù)量級。

評價一個算法的時間性能時,主要標(biāo)準(zhǔn)就是算法的漸近時間復(fù)雜度。

算法中語句的頻度不僅與問題規(guī)模有關(guān),還與輸入實(shí)例中各元素的取值相關(guān)。

時間復(fù)雜度按數(shù)量級遞增排列依次為:常數(shù)階O(1)、對數(shù)階O(log2n)、線性階O(n)、線性對數(shù)階O(nlog2n)、平方階O(n^2)、立方階O(n^3)、……k次方階O(n^k)、指數(shù)階O(2^n)。

空間復(fù)雜度:是某個算法的空間耗費(fèi),它是該算法所求解問題規(guī)模n的函數(shù)。

算法的時間復(fù)雜度和空間復(fù)雜度合稱算法復(fù)雜度。

第二章 線性表

線性表是由n≥0個數(shù)據(jù)元素組成的有限序列。n=0是空表;非空表,只能有一個開始結(jié)點(diǎn),有且只能有一個終端結(jié)點(diǎn)。

線性表上定義的基本運(yùn)算:

·構(gòu)造空表:Initlist(L)

·求表長:Listlength(L)

·取結(jié)點(diǎn):GetNode(L,i)

·查找:LocateNode(L,x)

·插入:InsertList(L,x,i)

·刪除:Delete(L,i)

順序表是按線性表的邏輯結(jié)構(gòu)次序依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中的各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)相鄰關(guān)系是一致的。地址計(jì)算:LOCa(i)=LOCa(1)+(i-1)*d;(首地址為1)/考試 大收集整理/

在順序表中實(shí)現(xiàn)的基本運(yùn)算:

·插入:平均移動結(jié)點(diǎn)次數(shù)為n/2;平均時間復(fù)雜度均為O(n)。

·刪除:平均移動結(jié)點(diǎn)次數(shù)為(n-1)/2;平均時間復(fù)雜度均為O(n)。

線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中結(jié)點(diǎn)的邏輯次序和物理次序不一定相同,為了能正確表示結(jié)點(diǎn)間的邏輯關(guān)系,在存儲每個結(jié)點(diǎn)值的同時,還存儲了其后繼結(jié)點(diǎn)的地址信息(即指針或鏈)。這兩部分信息組成鏈表中的結(jié)點(diǎn)結(jié)構(gòu)。一個單鏈表由頭指針的名字來命名。

單鏈表運(yùn)算:

·建立單鏈表

·頭插法:s->next=head;head=s;生成的順序與輸入順序相反。平均時間復(fù)雜度均為O(n)。

·尾插法:head=rear=null;if(head=null)head=s;else r->next=s;r=s;平均時間復(fù)雜度均為O(n)

·加頭結(jié)點(diǎn)的算法:對開始結(jié)點(diǎn)的操作無需特殊處理,統(tǒng)一了空表和非空表。

·查找

·按序號:與查找位置有關(guān),平均時間復(fù)雜度均為O(n)。

·按值:與輸入實(shí)例有關(guān),平均時間復(fù)雜度均為O(n)。

·插入運(yùn)算:p=GetNode(L,i-1);s->next=p->next;p->next=s;平均時間復(fù)雜度均為O(n)

·刪除運(yùn)算:p=GetNode(L,i-1);r=p->next;p->next=r->next;free(r);平均時間復(fù)雜度均為O(n)

單循環(huán)鏈表是一種首尾相接的單鏈表,終端結(jié)點(diǎn)的指針域指向開始結(jié)點(diǎn)或頭結(jié)點(diǎn)。鏈表終止條件是以指針等于頭指針或尾指針。

采用單循環(huán)鏈表在實(shí)用中多采用尾指針表示單循環(huán)鏈表。優(yōu)點(diǎn)是查找頭指針和尾指針的時間都是O(1),不用遍歷整個鏈表。

雙鏈表就是雙向鏈表,就是在單鏈表的每個結(jié)點(diǎn)里再增加一個指向其直接前趨的指針域prior,形成兩條不同方向的鏈。由頭指針head惟一確定。

雙鏈表也可以頭尾相鏈接構(gòu)成雙(向)循環(huán)鏈表。

雙鏈表上的插入和刪除時間復(fù)雜度均為O(1)。

順序表和鏈表的比較:

·基于空間:

·順序表的存儲空間是靜態(tài)分配,存儲密度為1;適于線性表事先確定其大小時采用。

·鏈表的存儲空間是動態(tài)分配,存儲密度<1;適于線性表長度變化大時采用。

·基于時間:

·順序表是隨機(jī)存儲結(jié)構(gòu),當(dāng)線性表的操作主要是查找時,宜采用。

·以插入和刪除操作為主的線性表宜采用鏈表做存儲結(jié)構(gòu)。

·若插入和刪除主要發(fā)生在表的首尾兩端,則宜采用尾指針表示的單循環(huán)鏈表。

第三章 棧和隊(duì)列

棧(Stack)是僅限制在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,稱插入、刪除這一端為棧頂,另一端稱為棧底。表中無元素時為空棧。棧的修改是按后進(jìn)先出的原則進(jìn)行的,我們又稱棧為LIFO表(Last In First Out)。通常棧有順序棧和鏈棧兩種存儲結(jié)構(gòu)。

棧的基本運(yùn)算有六種:

·構(gòu)造空棧:InitStack(S)

·判棧空:StackEmpty(S)

·判棧滿:StackFull(S)

·進(jìn)棧:Push(S,x)

·退棧:Pop(S)

·取棧頂元素:StackTop(S)在順序棧中有“上溢”和“下溢”的現(xiàn)象。

·“上溢”是棧頂指針指出棧的外面是出錯狀態(tài)。

·“下溢”可以表示棧為空棧,因此用來作為控制轉(zhuǎn)移的條件。

順序棧中的基本操作有六種:

·構(gòu)造空棧

·判棧空

·判棧滿

·進(jìn)棧

·退棧

·取棧頂元素

鏈棧則沒有上溢的限制,因此進(jìn)棧不要判棧滿。鏈棧不需要在頭部附加頭結(jié)點(diǎn),只要有鏈表的頭指針就可以了。

鏈棧中的基本操作有五種:

·構(gòu)造空棧

·判棧空

·進(jìn)棧

·退棧

·取棧頂元素

隊(duì)列(Queue)是一種運(yùn)算受限的線性表,插入在表的一端進(jìn)行,而刪除在表的另一端進(jìn)行,允許刪除的一端稱為隊(duì)頭(front),允許插入的一端稱為隊(duì)尾(rear),隊(duì)列的操作原則是先進(jìn)先出的,又稱作FIFO表(First In First Out).隊(duì)列也有順序存儲和鏈?zhǔn)酱鎯煞N存儲結(jié)構(gòu)。

隊(duì)列的基本運(yùn)算有六種:

·置空隊(duì):InitQueue(Q)

·判隊(duì)空:QueueEmpty(Q)

·判隊(duì)滿:QueueFull(Q)

·入隊(duì):EnQueue(Q,x)

·出隊(duì):DeQueue(Q)

·取隊(duì)頭元素:QueueFront(Q)

順序隊(duì)列的“假上溢”現(xiàn)象:由于頭尾指針不斷前移,超出向量空間。這時整個向量空間及隊(duì)列是空的卻產(chǎn)生了“上溢”現(xiàn)象。

為了克服“假上溢”現(xiàn)象引入循環(huán)向量的概念,是把向量空間形成一個頭尾相接的環(huán)形,這時隊(duì)列稱循環(huán)隊(duì)列。

判定循環(huán)隊(duì)列是空還是滿,方法有三種:

·一種是另設(shè)一個布爾變量來判斷;

·第二種是少用一個元素空間,入隊(duì)時先測試((rear+1)%m = front)? 滿:空;

·第三種就是用一個計(jì)數(shù)器記錄隊(duì)列中的元素的總數(shù)。

隊(duì)列的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為鏈隊(duì)列,一個鏈隊(duì)列就是一個操作受限的單鏈表。為了便于在表尾進(jìn)行插入(入隊(duì))的操作,在表尾增加一個尾指針,一個鏈隊(duì)列就由一個頭指針和一個尾指針唯一地確定。鏈隊(duì)列不存在隊(duì)滿和上溢的問題。在鏈隊(duì)列的出隊(duì)算法中,要注意當(dāng)原隊(duì)中只有一個結(jié)點(diǎn)時,出隊(duì)后要同進(jìn)修改頭尾指針并使隊(duì)列變空。

第二篇:2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

11-12-2數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)指導(dǎo)

第一章:

知識點(diǎn):數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)元素關(guān)系的基本結(jié)構(gòu)類型;數(shù)據(jù)元素的不同存儲結(jié)構(gòu);算法的重要特性;評價算法的重要指標(biāo); 如何由程序代碼估算算法的復(fù)雜度(大O描述)。

第二章:

知識點(diǎn):線性表不同的存儲方式及其各自特點(diǎn);順序表及鏈表的基本操作(插入、刪除等)與其具體代碼實(shí)現(xiàn)。

第三章:

知識點(diǎn):棧和隊(duì)列的結(jié)構(gòu)特點(diǎn);二者基本操作的思想;鏈隊(duì)列和循環(huán)隊(duì)列的基本操作;循環(huán)隊(duì)列如何判空和判滿。

第四章:

知識點(diǎn):串的相關(guān)定義與基本操作;模式匹配的定義與思想。

第五章:

知識點(diǎn):數(shù)組的定義與順序?qū)崿F(xiàn)方式;數(shù)組順序存儲中元素地址的計(jì)算;稀疏矩陣的壓縮存儲方式與元素地址的特點(diǎn);廣義表的定義與基本操作(表頭,表尾,判長度、深度)。

第六章:

知識點(diǎn):樹的基本術(shù)語;(滿/完全)二叉樹的定義與各種性質(zhì)特點(diǎn);二叉樹不同的存儲與遍歷方式;一般樹的存儲結(jié)構(gòu);樹與森林的遍歷方式;赫夫曼樹與編碼的求法。

第七章:

知識點(diǎn):(有向/無向/完全)圖的概念與其特點(diǎn);(強(qiáng))聯(lián)通圖的定義與特點(diǎn);圖的不同存儲結(jié)構(gòu)及其操作;圖的不同方式的遍歷;最小生成樹的定義與其不同的求解方法;拓?fù)渑判虻亩x與思想;關(guān)鍵(最短)路徑的定義與思想。

第九章:

知識點(diǎn):順序查找、折半查找的思想及其具體代碼實(shí)現(xiàn)和復(fù)雜度分析;索引查找的思想;二叉排序樹的思想及操作;平衡二叉樹的定義與操作;B-樹的定義與特點(diǎn);哈希表(函數(shù))的定義;哈希函數(shù)的構(gòu)造方法與處理沖突的方法。

第十章:

知識點(diǎn):各種排序方法的思想與其復(fù)雜度、穩(wěn)定性分析。

注:以上涉及到的復(fù)雜度分析,其推導(dǎo)過程不做要求。

第三篇:2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)(5)龍耒為你整理:

第九章 查找

查找的同時對表做修改操作(如插入或刪除)則相應(yīng)的表稱之為動態(tài)查找表,否則稱之為靜態(tài)查找表。

衡量查找算法效率優(yōu)劣的標(biāo)準(zhǔn)是在查找過程中對關(guān)鍵字需要執(zhí)行的平均比較次數(shù)(即平均查找長度ASL)。

線性表查找的方法:

·順序查找:逐個查找,ASL=(n+1)/2;

·二分查找:取中點(diǎn)int(n/2)比較,若小就比左區(qū)間,大就比右區(qū)間。用二叉判定樹表示。ASL=(∑(每層結(jié)點(diǎn)數(shù)*層數(shù)))/N;·分塊查找:要求“分塊有序”,將表分成若干塊內(nèi)部不一定有序,并抽取各塊中的最大關(guān)鍵字及其位置建立有序索引表。

二叉排序樹(BST)定義是二叉排序樹是空樹或者滿足如下性質(zhì)的二叉樹:

·若它的左子樹非空,則左子樹上所有結(jié)點(diǎn)的值均小于根結(jié)點(diǎn)的值;

·若它的右子樹非空,則右子樹上所有結(jié)點(diǎn)的值均大于根結(jié)點(diǎn)的值;

·左、右子樹本身又是一棵二叉排序樹。

二叉排序樹的插入、建立、刪除的算法平均時間性能是O(nlog2n)。

二叉排序樹的刪除操作可分三種情況進(jìn)行處理:

·*P是葉子,則直接刪除*P,即將*P的雙親*parent中指向*P的指針域置空即可。

·*P只有一個孩子*child,此時只需將*child和*p的雙親直接連接就可刪去*p。

·*p有兩個孩子,則先將*p結(jié)點(diǎn)的中序后繼結(jié)點(diǎn)的數(shù)據(jù)到*p,刪除中序后繼結(jié)點(diǎn)。

關(guān)于B-樹(多路平衡查找樹)。它適合在磁盤等直接存取設(shè)備上組織動態(tài)的查找表,是一種外查找算法。建立的方式是從下向上拱起。散列技術(shù):將結(jié)點(diǎn)按其關(guān)鍵字的散列地址存儲到散列表的過程稱為散列。

散列函數(shù)的選擇有兩條標(biāo)準(zhǔn):簡單和均勻。

常見的散列函數(shù)構(gòu)的造方法:

·平方取中法:hash=int((x^2)0)

·除余法:表長為m,hash=x%m

·相乘取整法:hash=int(m*(x*A-int(x*A));A=0.618

·隨機(jī)數(shù)法:hash=random(x)。

處理沖突的方法:

開放定址法: 一般形式為hi=(h(key)+di)%m1≤i≤m-1,開放定址法要求散列表的裝填因子α≤1。

·開放定址法類型:

·線性探查法:address=(hash(x)+i)%m;·二次探查法:address=(hash(x)+i^2)%m;

·雙重散列法:address=(hash(x)+i*hash(y))%m;

·拉鏈法: 是將所有關(guān)鍵字為同義詞的結(jié)點(diǎn)鏈接在同一個單鏈表中。

·拉鏈法的優(yōu)點(diǎn):

·拉鏈法處理沖突簡單,且無堆積現(xiàn)象;

·鏈表上的結(jié)點(diǎn)空間是動態(tài)申請的適于無法確定表長的情況;

·拉鏈法中α可以大于1,結(jié)點(diǎn)較大時其指針域可忽略,因此節(jié)省空間;

·拉鏈法構(gòu)造的散列表刪除結(jié)點(diǎn)易實(shí)現(xiàn)。

·拉鏈法也有缺點(diǎn):當(dāng)結(jié)點(diǎn)規(guī)模較小時,用拉鏈法中的指針域也要占用額外空間,還是開放定址法省空間。

第十章 文件

文件是性質(zhì)相同的記錄的集合。記錄是文件中存取的基本單位,數(shù)據(jù)項(xiàng)是文件可使用的最小單位,數(shù)據(jù)項(xiàng)有時稱字段或者屬性。

文件

·邏輯結(jié)構(gòu)是一種線性結(jié)構(gòu)。

·操作有:檢索和維護(hù)。并有實(shí)時和批量處理兩種處理方式。

文件

·存儲結(jié)構(gòu)是指文件在外存上的組織方式。

·基本的組織方式有:順序組織、索引組織、散列組織和鏈組織。

·常用的文件組織方式:順序文件、索引文件、散列文件和多關(guān)鍵字文件。

評價一個文件組織的效率,是執(zhí)行文件操作所花費(fèi)的時間和文件組織所需的存儲空間。

檢索功能的多寡和速度的快慢,是衡量文件操作質(zhì)量的重要標(biāo)志。

順序文件是指按記錄進(jìn)入文件的先后順序存放、其邏輯順序和物理順序一致的文件。主關(guān)鍵字有序稱順序有序文件,否則稱順序無序文件。

一切存儲在順序存儲器(如磁帶)上的文件都只能順序文件,只能按順序查找法存取。順序文件的插入、刪除和修改只能通過復(fù)制整個文件實(shí)現(xiàn)。

索引文件的組織方式:通常是在主文件之外建立一張索引表指明邏輯記錄和物理記錄之間一一對應(yīng)的關(guān)系,它和主文件一起構(gòu)成索引文件。

索引非順序文件中的索引表為稠密索引。索引順序文件中的索引表為稀疏索引。

若記錄很大使得索引表也很大時,可對索引表再建立索引,稱為查找表。是一種靜態(tài)索引。

索引順序文件常用的有兩種:

·ISAM索引順序存取方法:是專為磁盤存取文件設(shè)計(jì)的,采用靜態(tài)索引結(jié)構(gòu)。

·VSAM虛擬存儲存取方法:采用B+樹作為動態(tài)索引結(jié)構(gòu),由索引集、順序集、數(shù)據(jù)集組成。

散列文件是利用散列存儲方式組織的文件,亦稱為直接存取文件。

散列文件

·優(yōu)點(diǎn)是:文件隨機(jī)存放,記錄不需要排序;插入刪除方便;存取速度快;不需要索引區(qū),節(jié)省存儲空間。

·缺點(diǎn)是:不能進(jìn)行順序存取,只能按關(guān)鍵字隨機(jī)存取,且詢問方式限地簡單詢問,需要重新組織文件。

多重表文件:對需要查詢的次關(guān)鍵字建立相應(yīng)的索引,對相同次關(guān)鍵字的記錄建一個鏈表并將鏈表頭指針、長度、次關(guān)鍵字作為索引表的索引項(xiàng)。

倒排表:次關(guān)鍵字索引表稱倒排表,主文件和倒排表構(gòu)成倒排文件。

第四篇:2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)(3)龍耒為你整理:

第五章 多維數(shù)組和廣義表

數(shù)組一般用順序存儲的方式表示。存儲的方式有:

·行優(yōu)先順序,也就是把數(shù)組逐行依次排列。PASCAL、C

·列優(yōu)先順序,就是把數(shù)組逐列依次排列。FORTRAN

地址的計(jì)算方法:

·按行優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((i-1)*n+(j-1))*d.·按列優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((j-1)*n+(i-1))*d.矩陣的壓縮存儲:為多個相同的非零元素分配一個存儲空間;對零元素不分配空間。

特殊矩陣的概念:所謂特殊矩陣是指非零元素或零元素分布有一定規(guī)律的矩陣。

稀疏矩陣的概念:一個矩陣中若其非零元素的個數(shù)遠(yuǎn)遠(yuǎn)小于零元素的個數(shù),則該矩陣稱為稀疏矩陣。

特殊矩陣的類型:

·對稱矩陣:滿足a(ij)=a(ji)。元素總數(shù)n(n+1)/2.I=max(i,j),J=min(i,j),LOCa(ij)=LOC(sa[0])+(I*(I+1)/2+J)*d.·三角矩陣:

·上三角陣:k=i*(2n-i+1)/2+j-i,LOCa(ij)=LOC(sa[0])+k*d.·下三角陣:k=i*(i+1)/2+j,LOCa(ij)=LOC(sa[0])+k*d.·對角矩陣:k=2i+j,LOCa(ij)=LOC(sa[0])+k*d.稀疏矩陣的壓縮存儲方式用三元組表把非零元素的值和它所在的行號列號做為一個結(jié)點(diǎn)存放在一起,用這些結(jié)點(diǎn)組成的一個線性表來表示。但這種壓縮存儲方式將失去隨機(jī)存儲功能。加入行表記錄每行的非零元素在三元組表中的起始位置,即帶行表的三元組表。

廣義表是n(n≥0)個元素的有限序列,其中的元素是原子或者是一個廣義表。

廣義表表頭和表尾的概念:

·若廣義表LS非空(n≥1),則這個廣義表的第一個元素就是表頭。

·其余的元素組成的表稱為LS的表尾,所以表尾必是一個子表。

廣義表有兩種表示法,一種是括號表示法,一種是圖形表示法。

廣義表與樹(形結(jié)構(gòu))相對應(yīng),這個廣義表就是純表。

如果一個廣義表的結(jié)點(diǎn)又可以被其他結(jié)點(diǎn)所共享,則這個表稱為再入表。

允許遞歸的表稱為遞歸表。

線性表∈純表(樹)∈再入表∈遞歸表。可見,廣義表是對線性表和樹的推廣。

廣義表有兩個特殊的基本運(yùn)算:

·取表頭head(LS):取表中的第一個數(shù)據(jù)元素,不能對空表操作。

·取表尾tail(LS);取除表頭外,其余數(shù)據(jù)元素構(gòu)成的子表,不能對空表操作。

第六章 樹

樹是n個結(jié)點(diǎn)的有限集合,非空時必須滿足:只有一個稱為根的結(jié)點(diǎn);其余結(jié)點(diǎn)形成m個不相交的子集,并稱根的子樹。

根是開始結(jié)點(diǎn);結(jié)點(diǎn)的子樹數(shù)稱度;度為0的結(jié)點(diǎn)稱葉子(終端結(jié)點(diǎn));度不為0的結(jié)點(diǎn)稱分支結(jié)點(diǎn)(非終端結(jié)點(diǎn));除根外的分支結(jié)點(diǎn)稱內(nèi)部結(jié)點(diǎn);

有序樹是子樹有左,右之分的樹;無序樹是子樹沒有左,右之分的樹;森林是m個互不相交的樹的集合;

樹的四種不同表示方法:

·樹形表示法;

·嵌套集合表示法;

·凹入表示法;

·廣義表表示法。

二叉樹的定義:是n≥0個結(jié)點(diǎn)的有限集,它是空集(n=0)或由一個根結(jié)點(diǎn)及兩棵互不相交的分別稱作這個根的左子樹和右子樹的二叉樹組成。

二叉樹不是樹的特殊情形,與度數(shù)為2的有序樹不同。

二叉樹的4個重要性質(zhì):

·二叉樹上第i層上的結(jié)點(diǎn)數(shù)目最多為2^(i-1)(i≥1);

·深度為k的二叉樹至多有(2^k)-1個結(jié)點(diǎn)(k≥1);

·在任意一棵二叉樹中,若終端結(jié)點(diǎn)的個數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1;

·具有n個結(jié)點(diǎn)的完全二叉樹的深度為int(log2n)+1。滿二叉樹是一棵深度為k,結(jié)點(diǎn)數(shù)為(2^k)-1的二叉樹;完全二叉樹是滿二叉樹在最下層自右向左去處部分結(jié)點(diǎn);

二叉樹的順序存儲結(jié)構(gòu)就是把二叉樹的所有結(jié)點(diǎn)按照層次順序存儲到連續(xù)的存儲單元中。(存儲前先將其畫成完全二叉樹)

樹的存儲結(jié)構(gòu)多用的是鏈?zhǔn)酱鎯ΑinTNode的結(jié)構(gòu)為lchild|data|rchild,把所有BinTNode類型的結(jié)點(diǎn),加上一個指向根結(jié)點(diǎn)的BinTree型頭指針就構(gòu)成了二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu),稱為二叉鏈表。它就是由根指針root唯一確定的。共有2n個指針域,n+1個空指針。

根據(jù)訪問結(jié)點(diǎn)的次序不同可得三種遍歷:先序遍歷(前序遍歷或先根遍歷),中序遍歷(或中根遍歷)、后序遍歷(或后根遍歷)。時間復(fù)雜度為O(n)。

利用二叉鏈表中的n+1個空指針域來存放指向某種遍歷次序下的前趨結(jié)點(diǎn)和后繼結(jié)點(diǎn)的指針,這些附加的指針就稱為“線索”,加上線索的二叉鏈表就稱為線索鏈表。線索使得查找中序前趨和中序后繼變得簡單有效,但對于查找指定結(jié)點(diǎn)的前序前趨和后序后繼并沒有什么作用。

樹和森林及二叉樹的轉(zhuǎn)換是唯一對應(yīng)的。

轉(zhuǎn)換方法:

·樹變二叉樹:兄弟相連,保留長子的連線。

·二叉樹變樹:結(jié)點(diǎn)的右孩子與其雙親連。

·森林變二叉樹:樹變二叉樹,各個樹的根相連。

樹的存儲結(jié)構(gòu):

·有雙親鏈表表示法:結(jié)點(diǎn)data | parent,對于求指定結(jié)點(diǎn)的雙親或祖先十分方便,但不適于求指定結(jié)點(diǎn)的孩子及后代。

·孩子鏈表表示法:為樹中每個結(jié)點(diǎn)data | next設(shè)置一個孩子鏈表firstchild,并將data | firstchild存放在一個向量中。

·雙親孩子鏈表表示法:將雙親鏈表和孩子鏈表結(jié)合。

·孩子兄弟鏈表表示法:結(jié)點(diǎn)結(jié)構(gòu)leftmostchild |data | rightsibing,附加兩個分別指向該結(jié)點(diǎn)的最左孩子和右鄰兄弟的指針域。樹的前序遍歷與相對應(yīng)的二叉樹的前序遍歷一致;樹的后序遍歷與相對應(yīng)的二叉樹的中序遍歷一致。

樹的帶權(quán)路徑長度是樹中所有葉結(jié)點(diǎn)的帶權(quán)路徑長度之和。樹的帶權(quán)路徑長度最小的二叉樹就稱為最優(yōu)二叉樹(即哈夫曼樹)。

在葉子的權(quán)值相同的二叉樹中,完全二叉樹的路徑長度最短。

哈夫曼樹有n個葉結(jié)點(diǎn),共有2n-1個結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn),這類樹又稱為嚴(yán)格二叉樹。

變長編碼技術(shù)可以使頻度高的字符編碼短,而頻度低的字符編碼長,但是變長編碼可能使解碼產(chǎn)生二義性。如00、01、0001這三個碼無法在解碼時確定是哪一個,所以要求在字符編碼時任一字符的編碼都不是其他字符編碼的前綴,這種碼稱為前綴碼(其實(shí)是非前綴碼)。

哈夫曼樹的應(yīng)用最廣泛地是在編碼技術(shù)上,它能夠容易地求出給定字符集及其概率分布的最優(yōu)前綴碼。哈夫曼編碼的構(gòu)造很容易,只要畫好了哈夫曼樹,按分支情況在左路徑上寫代碼0,右路徑上寫代碼1,然后從上到下到葉結(jié)點(diǎn)的相應(yīng)路徑上的代碼的序列就是該結(jié)點(diǎn)的最優(yōu)前綴碼。

第五篇:2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)

2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)(2)2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》四至六章復(fù)習(xí)要點(diǎn)總結(jié)。

第四章 串

串是零個或多個字符組成的有限序列。

·空串:是指長度為零的串,也就是串中不包含任何字符(結(jié)點(diǎn))。

·空白串:指串中包含一個或多個空格字符的串。

·在一個串中任意個連續(xù)字符組成的子序列稱為該串的子串,包含子串的串就稱為主串。

·子串在主串中的序號就是指子串在主串中首次出現(xiàn)的位置。

·空串是任意串的子串,任意串是自身的子串。

串分為兩種:

·串常量在程序中只能引用不能改變;

·串變量的值可以改變。

串的基本運(yùn)算有:

·求串長strlen(char*s)

·串復(fù)制strcpy(char*to,char*from)

·串聯(lián)接strcat(char*to,char*from)

·串比較charcmp(char*s1,char*s2)

·字符定位strchr(char*s,charc)

。串是特殊的線性表(結(jié)點(diǎn)是字符),所以串的存儲結(jié)構(gòu)與線性表的存儲結(jié)構(gòu)類似。串的順序存儲結(jié)構(gòu)簡稱為順序串。

順序串又可按存儲分配的不同分為:

·靜態(tài)存儲分配:直接用定長的字符數(shù)組來定義。優(yōu)點(diǎn)是涉及串長的操作速度快,但不適合插入、鏈接操作。

·動態(tài)存儲分配:是在定義串時不分配存儲空間,需要使用時按所需串的長度分配存儲單元。

串的鏈?zhǔn)酱鎯褪怯脝捂湵淼姆绞酱鎯Υ担倪@種鏈?zhǔn)酱鎯Y(jié)構(gòu)簡稱為鏈串。鏈串與單鏈表的差異只是它的結(jié)點(diǎn)數(shù)據(jù)域?yàn)閱蝹€字符。

為了解決“存儲密度”低的狀況,可以讓一個結(jié)點(diǎn)存儲多個字符,即結(jié)點(diǎn)的大小。

順序串上子串定位的運(yùn)算:又稱串的“模式匹配”或“串匹配”,是在主串中查找出子串出現(xiàn)的位置。在串匹配中,將主串稱為目標(biāo)(串),子串稱為模式(串)。這是比較容易理解的,串匹配問題就是找出給定模式串P在給定目標(biāo)串T中首次出現(xiàn)的有效位移或者是全部有效位移。最壞的情況下時間復(fù)雜度是O((n-m+1)m),假如m與n同階的話則它是O(n^2)。鏈串上的子串定位運(yùn)算位移是結(jié)點(diǎn)地址而不是整數(shù)。

第五章 多維數(shù)組和廣義表

數(shù)組一般用順序存儲的方式表示。存儲的方式有:

·行優(yōu)先順序,也就是把數(shù)組逐行依次排列。PASCAL、C

·列優(yōu)先順序,就是把數(shù)組逐列依次排列。FORTRAN

地址的計(jì)算方法:

·按行優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((i-1)*n+(j-1))*d.·按列優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+((j-1)*n+(i-1))*d.矩陣的壓縮存儲:為多個相同的非零元素分配一個存儲空間;對零元素不分配空間。

特殊矩陣的概念:所謂特殊矩陣是指非零元素或零元素分布有一定規(guī)律的矩陣。

稀疏矩陣的概念:一個矩陣中若其非零元素的個數(shù)遠(yuǎn)遠(yuǎn)小于零元素的個數(shù),則該矩陣稱為稀疏矩陣。

特殊矩陣的類型:

·對稱矩陣:滿足a(ij)=a(ji)。元素總數(shù)n(n+1)/2.I=max(i,j),J=min(i,j),LOCa(ij)=LOC(sa[0])+(I*(I+1)/2+J)*d.·三角矩陣:

·上三角陣:k=i*(2n-i+1)/2+j-i,LOCa(ij)=LOC(sa[0])+k*d.·下三角陣:k=i*(i+1)/2+j,LOCa(ij)=LOC(sa[0])+k*d.·對角矩陣:k=2i+j,LOCa(ij)=LOC(sa[0])+k*d.稀疏矩陣的壓縮存儲方式用三元組表把非零元素的值和它所在的行號列號做為一個結(jié)點(diǎn)存放在一起,用這些結(jié)點(diǎn)組成的一個線性表來表示。但這種壓縮存儲方式將失去隨機(jī)存儲功能。加入行表記錄每行的非零元素在三元組表中的起始位置,即帶行表的三元組表。

廣義表是n(n≥0)個元素的有限序列,其中的元素是原子或者是一個廣義表。

廣義表表頭和表尾的概念:

·若廣義表LS非空(n≥1),則這個廣義表的第一個元素就是表頭。

·其余的元素組成的表稱為LS的表尾,所以表尾必是一個子表。

廣義表有兩種表示法,一種是括號表示法,一種是圖形表示法。

廣義表與樹(形結(jié)構(gòu))相對應(yīng),這個廣義表就是純表。

如果一個廣義表的結(jié)點(diǎn)又可以被其他結(jié)點(diǎn)所共享,則這個表稱為再入表。

允許遞歸的表稱為遞歸表。

線性表∈純表(樹)∈再入表∈遞歸表。可見,廣義表是對線性表和樹的推廣。

廣義表有兩個特殊的基本運(yùn)算:

·取表頭head(LS):取表中的第一個數(shù)據(jù)元素,不能對空表操作。

·取表尾tail(LS);取除表頭外,其余數(shù)據(jù)元素構(gòu)成的子表,不能對空表操作。

第六章 樹

樹是n個結(jié)點(diǎn)的有限集合,非空時必須滿足:只有一個稱為根的結(jié)點(diǎn);其余結(jié)點(diǎn)形成m個不相交的子集,并稱根的子樹。

根是開始結(jié)點(diǎn);結(jié)點(diǎn)的子樹數(shù)稱度;度為0的結(jié)點(diǎn)稱葉子(終端結(jié)點(diǎn));度不為0的結(jié)點(diǎn)稱分支結(jié)點(diǎn)(非終端結(jié)點(diǎn));除根外的分支結(jié)點(diǎn)稱內(nèi)部結(jié)點(diǎn);

有序樹是子樹有左,右之分的樹;無序樹是子樹沒有左,右之分的樹;森林是m個互不相交的樹的集合;

樹的四種不同表示方法:

·樹形表示法;

·嵌套集合表示法;

·凹入表示法;

·廣義表表示法。

二叉樹的定義:是n≥0個結(jié)點(diǎn)的有限集,它是空集(n=0)或由一個根結(jié)點(diǎn)及兩棵互不相交的分別稱作這個根的左子樹和右子樹的二叉樹組成。

二叉樹不是樹的特殊情形,與度數(shù)為2的有序樹不同。

二叉樹的4個重要性質(zhì):

·二叉樹上第i層上的結(jié)點(diǎn)數(shù)目最多為2^(i-1)(i≥1);

·深度為k的二叉樹至多有(2^k)-1個結(jié)點(diǎn)(k≥1);

·在任意一棵二叉樹中,若終端結(jié)點(diǎn)的個數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1;

·具有n個結(jié)點(diǎn)的完全二叉樹的深度為int(log2n)+1。滿二叉樹是一棵深度為k,結(jié)點(diǎn)數(shù)為(2^k)-1的二叉樹;完全二叉樹是滿二叉樹在最下層自右向左去處部分結(jié)點(diǎn);

二叉樹的順序存儲結(jié)構(gòu)就是把二叉樹的所有結(jié)點(diǎn)按照層次順序存儲到連續(xù)的存儲單元中。(存儲前先將其畫成完全二叉樹)

樹的存儲結(jié)構(gòu)多用的是鏈?zhǔn)酱鎯ΑinTNode的結(jié)構(gòu)為lchild|data|rchild,把所有BinTNode類型的結(jié)點(diǎn),加上一個指向根結(jié)點(diǎn)的BinTree型頭指針就構(gòu)成了二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu),稱為二叉鏈表。它就是由根指針root唯一確定的。共有2n個指針域,n+1個空指針。

根據(jù)訪問結(jié)點(diǎn)的次序不同可得三種遍歷:先序遍歷(前序遍歷或先根遍歷),中序遍歷(或中根遍歷)、后序遍歷(或后根遍歷)。時間復(fù)雜度為O(n)。

利用二叉鏈表中的n+1個空指針域來存放指向某種遍歷次序下的前趨結(jié)點(diǎn)和后繼結(jié)點(diǎn)的指針,這些附加的指針就稱為“線索”,加上線索的二叉鏈表就稱為線索鏈表。線索使得查找中序前趨和中序后繼變得簡單有效,但對于查找指定結(jié)點(diǎn)的前序前趨和后序后繼并沒有什么作用。

樹和森林及二叉樹的轉(zhuǎn)換是唯一對應(yīng)的。

轉(zhuǎn)換方法:

·樹變二叉樹:兄弟相連,保留長子的連線。

·二叉樹變樹:結(jié)點(diǎn)的右孩子與其雙親連。

·森林變二叉樹:樹變二叉樹,各個樹的根相連。

樹的存儲結(jié)構(gòu):

·有雙親鏈表表示法:結(jié)點(diǎn)data | parent,對于求指定結(jié)點(diǎn)的雙親或祖先十分方便,但不適于求指定結(jié)點(diǎn)的孩子及后代。

·孩子鏈表表示法:為樹中每個結(jié)點(diǎn)data | next設(shè)置一個孩子鏈表firstchild,并將data | firstchild存放在一個向量中。

·雙親孩子鏈表表示法:將雙親鏈表和孩子鏈表結(jié)合。

·孩子兄弟鏈表表示法:結(jié)點(diǎn)結(jié)構(gòu)leftmostchild |data | rightsibing,附加兩個分別指向該結(jié)點(diǎn)的最左孩子和右鄰兄弟的指針域。樹的前序遍歷與相對應(yīng)的二叉樹的前序遍歷一致;樹的后序遍歷與相對應(yīng)的二叉樹的中序遍歷一致。

樹的帶權(quán)路徑長度是樹中所有葉結(jié)點(diǎn)的帶權(quán)路徑長度之和。樹的帶權(quán)路徑長度最小的二叉樹就稱為最優(yōu)二叉樹(即哈夫曼樹)。

在葉子的權(quán)值相同的二叉樹中,完全二叉樹的路徑長度最短。

哈夫曼樹有n個葉結(jié)點(diǎn),共有2n-1個結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn),這類樹又稱為嚴(yán)格二叉樹。

變長編碼技術(shù)可以使頻度高的字符編碼短,而頻度低的字符編碼長,但是變長編碼可能使解碼產(chǎn)生二義性。如00、01、0001這三個碼無法在解碼時確定是哪一個,所以要求在字符編碼時任一字符的編碼都不是其他字符編碼的前綴,這種碼稱為前綴碼(其實(shí)是非前綴碼)。

哈夫曼樹的應(yīng)用最廣泛地是在編碼技術(shù)上,它能夠容易地求出給定字符集及其概率分布的最優(yōu)前綴碼。哈夫曼編碼的構(gòu)造很容易,只要畫好了哈夫曼樹,按分支情況在左路徑上寫代碼0,右路徑上寫代碼1,然后從上到下到葉結(jié)點(diǎn)的相應(yīng)路徑上的代碼的序列就是該結(jié)點(diǎn)的最優(yōu)前綴碼。

下載2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié)word格式文檔
下載2010年自學(xué)考試《數(shù)據(jù)結(jié)構(gòu)》各章復(fù)習(xí)要點(diǎn)總結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

主站蜘蛛池模板: 精品国产va久久久久久久冰| 亚洲自偷精品视频自拍| 精品国产乱码久久久久久乱码| 性色av无码中文av有码vr| 制服丝袜av无码专区| 午夜片无码区私人影院| 国产精品美女久久久| 欧美国产国产综合视频| 国产成人免费97在线| 国内老熟妇乱子伦视频| 亚洲综合国产一区二区三区| 五十路熟妇亲子交尾| 丰满岳跪趴高撅肥臀尤物在线观看| 奇米四色7777中文字幕| 双腿张开被9个黑人调教影片| 亚洲精品无码永久在线观看性色| 18禁免费无码无遮挡不卡网站| 曰本无码人妻丰满熟妇5g影院| 亚洲中文有码字幕日本第一页| 国产偷窥熟女精品视频| 亚洲欧美成人精品香蕉网| 久久国产av影片| 国产高清在线精品一区| 精品成人av一区二区三区| 日本乱码一区二区三区不卡| 人妻丰满熟妇av无码区免| 天天爽夜夜爽夜夜爽精品视频| 熟妇人妻激情偷爽文| 日本一道综合久久aⅴ免费| 欧美成年视频在线观看| 国产精品午夜福利在线观看地址| 色欲悠久久久久综合区| 国产精品18久久久久久麻辣| 亚洲精品无码成人片久久不卡| 亚洲精品国产精华液| 免费情侣作爱视频| 亚洲色大成影网站www永久| 国产精品无码a∨果冻传媒| 亚洲色无码专线精品观看| 国偷自产一区二区三区在线视频| 无套内谢孕妇毛片免费看看|