版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章:緒論
:數(shù)據(jù)結(jié)構(gòu)課程的任務(wù)是:討論數(shù)據(jù)的各種邏輯結(jié)構(gòu)、在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu)以及各
種操作的算法設(shè)計(jì)。
:數(shù)據(jù):是客觀描述事物的數(shù)字、字符以及所有的能輸入到計(jì)算機(jī)中并能被計(jì)算機(jī)接
收的各種集合的統(tǒng)稱(chēng)。
數(shù)據(jù)元素:表示一個(gè)事物的一組數(shù)據(jù)稱(chēng)作是一個(gè)數(shù)據(jù)元素,是數(shù)據(jù)的基本單位。
數(shù)據(jù)項(xiàng):是數(shù)據(jù)元素中有獨(dú)立含義的、不可分割的最小標(biāo)識(shí)單位。
數(shù)據(jù)結(jié)構(gòu)概念包含三個(gè)方面:數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)的操作。
數(shù)據(jù)的邏輯結(jié)構(gòu)指數(shù)據(jù)元素之間的邏輯關(guān)系,用一個(gè)數(shù)據(jù)元素的集合定義在此集合上
的若干關(guān)系來(lái)表示,數(shù)據(jù)結(jié)構(gòu)可以分為三種:線性結(jié)構(gòu)、樹(shù)結(jié)構(gòu)和圖。
:數(shù)據(jù)元素及其關(guān)系在計(jì)算機(jī)中的存儲(chǔ)表示稱(chēng)為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也稱(chēng)為物理結(jié)構(gòu)。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)基本形式有兩種:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
:算法:一個(gè)算法是一個(gè)有窮規(guī)則的集合,其規(guī)則確定一個(gè)解決某一特定類(lèi)型問(wèn)題
的操作序列。算法規(guī)則需滿(mǎn)足以下五個(gè)特性:
輸入——算法有零個(gè)或者多個(gè)輸入數(shù)據(jù)。
輸出——算法有一個(gè)或者多個(gè)輸出數(shù)據(jù),與輸入數(shù)據(jù)有某種特定關(guān)系。
有窮性——算法必須在執(zhí)行又窮步之后結(jié)束。
確定性——算法的每一個(gè)步驟必須含義明確,無(wú)二義性。
可行性——算法的每步操作必須是基本的,它們的原則上都能夠精確地進(jìn)行,用筆和
紙做有窮次就可以完成。
有窮性和可行性是算法最重要的兩個(gè)特征。
:算法與數(shù)據(jù)結(jié)構(gòu):算法建立數(shù)據(jù)結(jié)構(gòu)之上,對(duì)數(shù)據(jù)結(jié)構(gòu)的操作需用算法來(lái)描述。
算法設(shè)計(jì)依賴(lài)數(shù)據(jù)的邏輯結(jié)構(gòu),算法實(shí)現(xiàn)依賴(lài)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)結(jié)構(gòu)。
:算法的設(shè)計(jì)應(yīng)滿(mǎn)足五個(gè)目標(biāo):
正確性:算法應(yīng)切當(dāng)?shù)臐M(mǎn)足應(yīng)用問(wèn)題的需求,這是算法設(shè)計(jì)的基本目標(biāo)。
茁壯性:即使輸入數(shù)據(jù)不合適,算法也能做出適當(dāng)?shù)奶幚?,不?huì)導(dǎo)致不可控結(jié)
高時(shí)間效率:算法的執(zhí)行時(shí)間越短,時(shí)間效率越高。果。
高空間效率:算法執(zhí)行時(shí)占用的存儲(chǔ)空間越少,空間效率越高。
可讀性:算法的可讀性有利于人們對(duì)算法的理解。
:度量算法的時(shí)間效率,時(shí)間復(fù)雜度,(課本39頁(yè))。
:遞歸定義:即用一個(gè)概念本身直接或者間接地定義它自己。遞歸定義有兩個(gè)條件:
至少有一條初始定義是非遞歸的,如1!=1.
由已知函數(shù)值逐步遞推計(jì)算出未知函數(shù)值,如用(n-1)!定義n!。
第二章:線性表
線性表:線性表是由n(n>=0)個(gè)類(lèi)型相同的數(shù)據(jù)元素a0,a1,a2,…anT,組成的有限序
列,記作:LinearList=(aO,a1,a2,??,an-1)
其中,元素ai可以是整數(shù)、浮點(diǎn)數(shù)、字符、也可以是對(duì)象。n是線性表的元素個(gè)數(shù),
成為線性表長(zhǎng)度。若n=0,則LinearList為空表。若n>0,則aO沒(méi)有前驅(qū)元素,an-1
沒(méi)有后繼元素,ai(0<i<n-1)有且僅有一個(gè)直接前驅(qū)元素ai-1和一個(gè)直接后繼元素
ai+1o
線性表的順序存儲(chǔ)是用一組連續(xù)的內(nèi)存單元挨次存放線性表的數(shù)據(jù)元素,元素在內(nèi)存
的物理存儲(chǔ)次序與它們?cè)诰€性表中的邏輯次序相同。
線性表的數(shù)據(jù)元素?cái)?shù)據(jù)同一種數(shù)據(jù)類(lèi)型,設(shè)每一個(gè)元素占用c字節(jié),aO的存儲(chǔ)地址
為L(zhǎng)oc(aO),則ai的存儲(chǔ)地址Loc(ai)為:Loc(ai)=Loc(aO)+i*c
數(shù)組是順序存儲(chǔ)的隨機(jī)存儲(chǔ)結(jié)構(gòu),它占用一組連續(xù)的存儲(chǔ)單元,通過(guò)下標(biāo)識(shí)別元
素,元素地址是下標(biāo)的線性函數(shù)。
:順序表的插入和刪除操作要挪移數(shù)據(jù)元素。平均挪移次數(shù)是
屬數(shù)據(jù)表長(zhǎng)度的一半。(課本第50頁(yè))
:線性表的鏈?zhǔn)酱鎯?chǔ)是用若干地址分散的存儲(chǔ)單元存儲(chǔ)數(shù)據(jù)元素,邏輯上相鄰的數(shù)據(jù)
元素在物理位置上不一定相鄰,必須采用附加信息表示數(shù)據(jù)元素之間的順序關(guān)系。
它有兩個(gè)域組成:數(shù)據(jù)域和地址域。通常成為節(jié)點(diǎn)。(課本第55頁(yè)及56頁(yè))
單鏈表(課本56頁(yè))
單鏈表的遍歷:Node<E>p=head;while(p!=nulI){訪問(wèn)p節(jié)點(diǎn);p=;}
單鏈表的插入和刪除操作非常簡(jiǎn)便,只要改變節(jié)點(diǎn)間的鏈接關(guān)系,不需挪移數(shù)據(jù)元
素。
單鏈表的插入操作:1):空表插入/頭插入2)中間插入/尾插入
if(head==null)Node<E>q=newNode<E>(x);
{head=newNode<E>(x);=;
}eIse{=q;
Node<E>q=newNode<E>(x);中間插入或者尾插入都不會(huì)改變單表
=head;的頭指針head。
head=q;
單鏈表的刪除操作:
頭刪除:head=;
中間/尾刪除:if!=nulI){=
循環(huán)單鏈表:如果單鏈表最后一個(gè)節(jié)點(diǎn)的next鏈保存單鏈表的頭指針head值,則該
單鏈表成為環(huán)形結(jié)構(gòu),稱(chēng)為循環(huán)單鏈表。(課本67)
若rear是單鏈表的尾指針,則執(zhí)行(=head;)語(yǔ)句,使單鏈表成為一條循環(huán)單鏈表。
當(dāng)=卜62£|時(shí),循環(huán)單鏈表為空。
:雙鏈表結(jié)構(gòu):雙鏈表的每一個(gè)結(jié)點(diǎn)有兩個(gè)鏈域,分別指向它的前驅(qū)和后繼結(jié)點(diǎn),
當(dāng)=皿11時(shí),雙鏈表為空。
設(shè)P指向雙鏈表中非兩端的某個(gè)結(jié)點(diǎn),則成立下列關(guān)系:P=o
雙鏈表的插入和刪除:1)插入2)刪除
q=newDLinkNode(x);=;
=;=p;if=nulI){
=q;=q;.prev=;}
循環(huán)雙鏈表:當(dāng)=*62~且=卜62£1時(shí),循環(huán)雙鏈表為空。
第三章:棧和隊(duì)列
棧:棧是一種特殊的線性表,其中插入和刪除操作只允許在線性表的一端進(jìn)行。允許
操作的一端稱(chēng)為棧頂,不允許操作的一端稱(chēng)為棧底。棧有順序棧和鏈?zhǔn)綏!?/p>
棧中插入元素的操作稱(chēng)為入棧,刪除元素的操作稱(chēng)為出棧。沒(méi)有元素的中稱(chēng)為空棧。
棧的進(jìn)出棧順序:后進(jìn)先出,先進(jìn)后出。(及75頁(yè)的思量題)。
:隊(duì)列:隊(duì)列是一種特殊的線性表,其中插入和刪除操作分別在線性表的兩端進(jìn)行。
向隊(duì)列中插入元素的過(guò)程稱(chēng)為入隊(duì),刪除元素的過(guò)程稱(chēng)為出對(duì),允許入隊(duì)的一端稱(chēng)為
隊(duì)尾,允許出隊(duì)的一端稱(chēng)為對(duì)頭。沒(méi)有元素的隊(duì)列稱(chēng)為空隊(duì)列。隊(duì)列是先進(jìn)先出。
第四章:串
:串是一種特殊的線性表,其特殊性在于線性表中的每一個(gè)元素是一個(gè)字符。一個(gè)串
記
為:s="s0s1s2…sn-1”其中n>=0,s是串名,一對(duì)雙引號(hào)括起來(lái)的字符序列
s0s1s2-sn-1是串值,si(i=0,1,2,…n-1)為特定字符集合中的一個(gè)字符。一個(gè)
串中包含的字符個(gè)數(shù)稱(chēng)為串的長(zhǎng)度。
長(zhǎng)度為0的串稱(chēng)為空串,記作“”,而由一個(gè)或者多個(gè)空格字符構(gòu)成的字符串稱(chēng)為空
格
串。
子串:由串S中任意連續(xù)字符組成的一個(gè)子序列sub稱(chēng)為S的子串,S稱(chēng)為sub的主
串。子串的序號(hào)是指該子串的第一個(gè)字符在主串中的序號(hào)。
串比較:兩個(gè)串可比較是否相等,也可比較大小。兩個(gè)串(子串)相等的充要條件是
兩個(gè)串(子串)的長(zhǎng)度相同,并且各對(duì)應(yīng)位置上的字符也相同。
兩個(gè)串的大小由對(duì)應(yīng)位置的第一個(gè)不同字符的大小決定,字符比較次序是從頭開(kāi)始依
次向后。當(dāng)兩個(gè)串長(zhǎng)度不等而對(duì)應(yīng)位置的字符都相同時(shí),較長(zhǎng)的串定義為較“大”。
第五章:數(shù)組和廣義表
:數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)元素具有相同的數(shù)據(jù)類(lèi)型。一維數(shù)組的邏輯結(jié)構(gòu)是線性
表,多維數(shù)組是線性表的擴(kuò)展。
:一維數(shù)組:一維數(shù)組采用順序存儲(chǔ)結(jié)構(gòu)。一個(gè)一維數(shù)組占用一組連續(xù)的存儲(chǔ)單元。
度數(shù)組第一個(gè)元素aO的存儲(chǔ)地址為L(zhǎng)oc(aO),每一個(gè)元素占用c字節(jié),則數(shù)組其他
元
素ai的存儲(chǔ)地址Loc(ai)為:Loc(ai)=Loc(aO)+i*c
數(shù)組通過(guò)下標(biāo)識(shí)別元素,元素地址是下標(biāo)的線性函數(shù)。一個(gè)下標(biāo)能夠惟一確定一個(gè)元
素,所劃給的時(shí)間是0(1)。因此數(shù)組是隨機(jī)存取結(jié)構(gòu),這是數(shù)組最大的優(yōu)點(diǎn)。
:多維數(shù)組的遍歷:有兩種次序:行主序和列主序。
行主序:以行為主序,按行遞增訪問(wèn)數(shù)組元素,訪問(wèn)完第i行的所有元素之后再訪問(wèn)
第i+1行的元素,同一行上按列遞增訪問(wèn)數(shù)組元素。
aOO,aO1,,?,aO(n-1),a10,a11,,■■al(n-1),,■,a(m-1)0,a(nr-1)1,,,,,a(m-1)(n-1)
2)列主序:以列為主序,按列遞增訪問(wèn)數(shù)組元素,訪問(wèn)完第j列的所有元素之后
再訪問(wèn)第j+1列的元素,同一列上按列遞增訪問(wèn)數(shù)組元素。
多維數(shù)組的存儲(chǔ)結(jié)構(gòu):多維數(shù)組也是由多個(gè)一維數(shù)組組合而成,組合方式有一下兩
種。
靜態(tài)多維數(shù)組的順序存儲(chǔ)結(jié)構(gòu):可按行主序和列主序進(jìn)行順序存儲(chǔ)。
按行主序存儲(chǔ)時(shí),元素aij的地址為:Loc(aij)=Loc(aOO)+(i*n+j)*c
按列主序存儲(chǔ)時(shí),Loc(aij)=Loc(aOO)+(j*m+i)*c
動(dòng)態(tài)多維數(shù)組的存儲(chǔ)結(jié)構(gòu)。
二維數(shù)組元素地址就是兩個(gè)下標(biāo)的線性函數(shù)。無(wú)論采用哪種存儲(chǔ)結(jié)構(gòu),多維數(shù)組都
是基于一維數(shù)組的,因此也只能進(jìn)行賦值、取值兩種存取操作,不能進(jìn)行插入,刪除
操作。
第六章:
樹(shù)是數(shù)據(jù)元素(結(jié)點(diǎn))之間具有層次關(guān)系的非線性結(jié)構(gòu)。在樹(shù)結(jié)構(gòu)中,除根以外的結(jié)
點(diǎn)惟獨(dú)一個(gè)直接前驅(qū)結(jié)點(diǎn),可以有零至多個(gè)直接后繼結(jié)點(diǎn)。根沒(méi)有前驅(qū)結(jié)點(diǎn)。
樹(shù)是由n(n>=0)個(gè)結(jié)點(diǎn)組成的有限集合(樹(shù)中元素通常稱(chēng)為結(jié)點(diǎn))。N=0的樹(shù)稱(chēng)為空
樹(shù);nX)大的樹(shù)T;
@有一個(gè)特殊的結(jié)點(diǎn)稱(chēng)為根結(jié)點(diǎn),它惟獨(dú)后繼結(jié)點(diǎn),沒(méi)有前驅(qū)結(jié)點(diǎn)。
@除根結(jié)點(diǎn)之外的其他結(jié)點(diǎn)分為m(m>=0)個(gè)互不相交的集合TO,T1,13……..,Tm-1,
其中每一個(gè)集合Ti(0Vi<m)本身又是一棵樹(shù),稱(chēng)為根的子樹(shù)。
樹(shù)是遞歸定義的。結(jié)點(diǎn)是樹(shù)大的基本單位,若干個(gè)結(jié)點(diǎn)組成一棵子樹(shù),若干棵互不相
交的子樹(shù)組成一棵樹(shù)。樹(shù)的每一個(gè)結(jié)點(diǎn)都是該樹(shù)中某一棵子樹(shù)的根。因此,樹(shù)是由結(jié)
點(diǎn)組成的、結(jié)點(diǎn)之間具有層次關(guān)系大的非線性結(jié)構(gòu)。
結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)稱(chēng)為其父母結(jié)點(diǎn),反之,結(jié)點(diǎn)大的后繼結(jié)點(diǎn)稱(chēng)為其孩子結(jié)點(diǎn)。一棵樹(shù)
中,惟獨(dú)根結(jié)點(diǎn)沒(méi)有父母結(jié)點(diǎn),其他結(jié)點(diǎn)有且僅有一個(gè)父母結(jié)點(diǎn)。
擁有同一個(gè)父母結(jié)點(diǎn)的多個(gè)結(jié)點(diǎn)之間稱(chēng)為兄弟結(jié)點(diǎn)。結(jié)點(diǎn)的祖先是指從根結(jié)點(diǎn)到其父
母結(jié)點(diǎn)所經(jīng)過(guò)大的所有結(jié)點(diǎn)。結(jié)點(diǎn)的后代是指該結(jié)點(diǎn)的所有孩子結(jié)點(diǎn),以及孩子的孩
子等。
結(jié)點(diǎn)的度是結(jié)點(diǎn)所擁有子樹(shù)的棵數(shù)。度為0的結(jié)點(diǎn)稱(chēng)為葉子結(jié)點(diǎn),又叫終端結(jié)點(diǎn);樹(shù)
中除葉子結(jié)點(diǎn)之外的其他結(jié)點(diǎn)稱(chēng)為分支結(jié)點(diǎn),又叫非葉子結(jié)點(diǎn)或者非終端結(jié)點(diǎn)。樹(shù)的
度是指樹(shù)中各結(jié)點(diǎn)度的最大值。
結(jié)點(diǎn)的層次屬性反應(yīng)結(jié)點(diǎn)處于樹(shù)中的層次位置。約定根結(jié)點(diǎn)的層次為1,其他結(jié)點(diǎn)的層
次是其父母結(jié)點(diǎn)的層次加1o顯然,兄弟結(jié)點(diǎn)的層次相同。
樹(shù)的高度或者深度是樹(shù)中結(jié)點(diǎn)的最大層次樹(shù)。
設(shè)樹(shù)中x結(jié)點(diǎn)是y結(jié)點(diǎn)的父母結(jié)點(diǎn),有序?qū)?x,y)稱(chēng)為連接這兩個(gè)結(jié)點(diǎn)的分支,也
稱(chēng)為邊。
設(shè)(X0,X1,….,Xk-1)是由樹(shù)中結(jié)點(diǎn)組成的一個(gè)序列,且(Xi,Xi+1)(0<=i<k-1)
都是樹(shù)中的邊,則該序列稱(chēng)為從X0到Xk-1的一條路徑。路徑長(zhǎng)度為路徑上的邊數(shù)。
在樹(shù)的定義中,結(jié)點(diǎn)的子樹(shù)TO,T1-之間沒(méi)有次序,可以交換位置,稱(chēng)為無(wú)
序樹(shù),簡(jiǎn)稱(chēng)樹(shù)。如果結(jié)點(diǎn)的子樹(shù)TO,T1……,TnH從左到右是有次序的,不能交換位
置,則稱(chēng)該樹(shù)為有序樹(shù)。
森林是m(m>=0)棵互不相干的樹(shù)的集合。給森林加之一個(gè)根結(jié)點(diǎn)就變成一棵樹(shù),將樹(shù)
的根節(jié)點(diǎn)刪除就變成森林。
二叉樹(shù)的性質(zhì)1:若根結(jié)點(diǎn)的層次為1,則二叉樹(shù)第i層最多有2的i-1次方
(i>=1)個(gè)結(jié)點(diǎn)。
二叉樹(shù)的性質(zhì)2:在高度為k的二叉樹(shù)中,最多有2的k次方減一個(gè)結(jié)點(diǎn)。
二叉樹(shù)的性質(zhì)3:設(shè)一棵二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)為n0,2度結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。
一棵高度為k的滿(mǎn)二叉樹(shù)是具有2的k次方減一個(gè)結(jié)點(diǎn)的二叉樹(shù)。滿(mǎn)二叉樹(shù)中每一層
的結(jié)點(diǎn)數(shù)目都達(dá)到最大值。對(duì)滿(mǎn)二叉樹(shù)的結(jié)點(diǎn)進(jìn)行連續(xù)編號(hào),約定根節(jié)點(diǎn)的序號(hào)為0,
從根節(jié)點(diǎn)開(kāi)始,自上而下,每層自左至右編號(hào)。
一棵具有n個(gè)結(jié)點(diǎn)高度為k的二叉樹(shù),如果他的每一個(gè)節(jié)點(diǎn)都與高度為k的滿(mǎn)二叉樹(shù)
中序號(hào)為0~n-1
的結(jié)點(diǎn)一一對(duì)應(yīng),則這棵二叉樹(shù)為為徹底二叉樹(shù)。
滿(mǎn)二叉樹(shù)是徹底二叉樹(shù),而徹底二叉樹(shù)不一定是滿(mǎn)二叉樹(shù)。徹底二叉樹(shù)的第廣廣1層
是滿(mǎn)二叉樹(shù)第k層不滿(mǎn),并且該層所有結(jié)點(diǎn)必須集中在該層左邊的若干位置上。
二叉樹(shù)的性質(zhì)4:一棵具有n個(gè)結(jié)點(diǎn)的徹底二叉樹(shù),其高度k=log2n的絕對(duì)值+1
二叉樹(shù)的性質(zhì)5:一棵具有n個(gè)結(jié)點(diǎn)的徹底二叉樹(shù),對(duì)序號(hào)為i的結(jié)點(diǎn),有
@若i=0,則i為根節(jié)點(diǎn),無(wú)父母結(jié)點(diǎn);若i>0,則i的父母結(jié)點(diǎn)的序號(hào)為[(iT)
/2]o
@若21+13,貝I]i的左孩子結(jié)點(diǎn)序號(hào)為2i+1;否則i無(wú)左孩子。
蜻2i+2<n,則i的右孩子結(jié)點(diǎn)的序號(hào)為2i+2,否則i無(wú)右孩子。
二叉樹(shù)的遍歷
二叉樹(shù)的遍歷是按照一定規(guī)則和次序訪問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn),并且每一個(gè)結(jié)點(diǎn)僅被
訪問(wèn)一次。
二叉樹(shù)的三種次序遍歷
1:先根次序;訪問(wèn)根節(jié)點(diǎn),遍歷左子樹(shù),遍歷右子樹(shù)。
2:中根次序;遍歷左子樹(shù),訪問(wèn)右子樹(shù),遍歷右子樹(shù)。
3:后根次序;遍歷左子樹(shù),遍歷右子樹(shù),訪問(wèn)根節(jié)點(diǎn)。
先根次序遍歷時(shí),最先訪問(wèn)根節(jié)點(diǎn);后根次序遍歷時(shí),最后訪問(wèn)根節(jié)點(diǎn);中根次序遍
歷時(shí),左子樹(shù)上的結(jié)點(diǎn)在根節(jié)點(diǎn)之前訪問(wèn),右子樹(shù)上的結(jié)點(diǎn)在根節(jié)點(diǎn)之后訪問(wèn)。
二叉樹(shù)的插入和刪除操作P147
二叉樹(shù)的層次遍歷P149
習(xí)題P1676—10,6—19
第七章
圖是由定點(diǎn)集合及頂點(diǎn)間的關(guān)系集合組成的一種數(shù)據(jù)關(guān)邊系。頂點(diǎn)之間的關(guān)系成為
邊。一個(gè)圖G記為G=(V,E),V是頂點(diǎn)A的有限集合,E是邊的有限集合。即
V={A|A屬于某個(gè)數(shù)據(jù)元素集合}
E={(A,B)|A,B屬于V}或者E={<A,B>|A,B屬于V且Path(A,B)}其中Path(A,B)表
示從頂點(diǎn)A到B的一條單向通路,即Path(A,B)是有方向的。
無(wú)向圖中的邊事沒(méi)有方向,每條邊用兩個(gè)頂點(diǎn)的無(wú)序?qū)Ρ硎尽?/p>
有向圖中的邊是有方向,每條邊用兩個(gè)頂點(diǎn)的有序?qū)Ρ硎尽?/p>
徹底圖指圖的邊數(shù)達(dá)到最大值。n個(gè)頂點(diǎn)的徹底圖記為Kn。無(wú)向徹底圖Kn的邊數(shù)為n*
(n-1)/2,有向徹底圖Kn的邊數(shù)為n*(n-1)o
子圖:設(shè)圖G=(V,E),G'=(V',E'),若V'包含于V且E'包含于E,則稱(chēng)圖G'是G
的子圖。若G'是G的真子圖。
連通圖:在無(wú)向圖G中,若從頂點(diǎn)VI到Vj有路徑,則稱(chēng)Vi和Vj是聯(lián)通的。若圖G
中任意一對(duì)頂點(diǎn)Vi和Vj(Vi不等于Vj)都是聯(lián)通的,則稱(chēng)G為連通圖。非連通圖的
極大聯(lián)通子圖稱(chēng)為該圖的聯(lián)通分量。
強(qiáng)連通圖:在有向圖中,若在每一對(duì)頂點(diǎn)Vi和Vj(Vi不等于Vj)之間都存在一條從
Vi至UVj的路徑,也存在一條從Vi至ljVj的路徑,也存在一條從Vi至ljVj的路徑,則稱(chēng)
該圖的強(qiáng)連通圖。非強(qiáng)連通圖的極大強(qiáng)連通子圖稱(chēng)為該圖的強(qiáng)連通圖分量。
圖的遍歷
遍歷圖是指從圖G中任意一個(gè)頂點(diǎn)V出發(fā),沿著圖中的邊前行,到達(dá)并訪問(wèn)圖中的所
有頂點(diǎn),且每一個(gè)頂點(diǎn)僅被訪問(wèn)一次。遍歷圖要考慮一下三個(gè)問(wèn)題:
@指定遍歷的第一個(gè)訪問(wèn)頂點(diǎn)
@由于一個(gè)頂點(diǎn)可能與多個(gè)頂點(diǎn)相鄰,因此要在多個(gè)鄰接頂點(diǎn)之間約定一種訪問(wèn)次序。
@由于圖中可能存在回路,在訪問(wèn)某個(gè)頂點(diǎn)之后,可能沿著某條路徑又回到該頂點(diǎn)。
深度優(yōu)先搜索
圖的深度優(yōu)先搜索策略是,訪問(wèn)某個(gè)頂點(diǎn)v,接著尋覓v的另一個(gè)未被訪問(wèn)的鄰接頂點(diǎn)
w訪問(wèn),如此反復(fù)執(zhí)行,走過(guò)一條較長(zhǎng)路徑到達(dá)最遠(yuǎn)頂點(diǎn);若頂點(diǎn)v沒(méi)有未被訪問(wèn)的其
他鄰接頂點(diǎn),則回到前一個(gè)被訪問(wèn)頂點(diǎn),再尋覓其他訪問(wèn)路徑。
圖的深度優(yōu)先搜索遍歷算法P188
聯(lián)通的無(wú)回路的無(wú)向圖,簡(jiǎn)稱(chēng)樹(shù)。樹(shù)中的懸掛點(diǎn)又成為樹(shù)葉,其他頂點(diǎn)稱(chēng)為分支點(diǎn)。
各連通分量均為樹(shù)的圖稱(chēng)為森林,樹(shù)是森林。
由于樹(shù)中無(wú)回路,因此樹(shù)中必然無(wú)自身環(huán)也無(wú)重邊(否則他有回路)若去掉樹(shù)中的任
意一條邊,則變成森林,成為非聯(lián)通圖;若給樹(shù)加之一條邊,形成圖中的一條回路,
則不是樹(shù)。P191
生成樹(shù)和生成森林:
一個(gè)連通無(wú)向圖的生成樹(shù)是該圖的一個(gè)極小聯(lián)通生成子圖,它包含原圖中所有頂點(diǎn)(n
個(gè))以及足以構(gòu)成一棵樹(shù)的n-1條邊。
一個(gè)非聯(lián)通的無(wú)向圖,其各連通圖分量的生成圖組成該圖的生成森林。
圖的生成圖或者生成森林不是惟一的,從不同頂點(diǎn)開(kāi)始、采用不同遍歷可以得到不同
的生成樹(shù)或者森林。
在生成樹(shù)中,任何樹(shù)中,任何兩個(gè)頂點(diǎn)之間惟獨(dú)惟一的一條路徑。
第八章
折半查找算法描述P206,P207
二叉排序樹(shù)及其查找:
二叉排序樹(shù)或者是一棵空樹(shù);或者是具有下列性質(zhì)的二叉樹(shù):
@每一個(gè)結(jié)點(diǎn)都有一個(gè)作為查找依據(jù)的關(guān)鍵字,所有結(jié)點(diǎn)的關(guān)鍵字互不相同。
@若一個(gè)結(jié)點(diǎn)的左子樹(shù)不空,則左子樹(shù)上所有結(jié)點(diǎn)的關(guān)鍵字均小于這個(gè)節(jié)點(diǎn)的關(guān)鍵字;
@每一個(gè)結(jié)點(diǎn)的擺布子樹(shù)也分別為二叉排序樹(shù)。
在一棵二叉排序樹(shù)中,查找值為value的結(jié)點(diǎn),算法描述如下:
@從根結(jié)點(diǎn)開(kāi)始,設(shè)P指向根結(jié)點(diǎn)
Rvalue與p結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教育儲(chǔ)值卡銷(xiāo)售與教育資源整合合同3篇
- 二零二五版環(huán)保項(xiàng)目環(huán)保宣傳教育分包合同3篇
- 二零二五年度果園租賃附帶果樹(shù)修剪與施肥服務(wù)合同3篇
- 二零二五年度賓館能源審計(jì)服務(wù)合同范本3篇
- 二零二五版危險(xiǎn)化學(xué)品運(yùn)輸司機(jī)安全責(zé)任合同3篇
- 2024年速凍粘玉米購(gòu)銷(xiāo)合同的支付方式
- 2024鮮魚(yú)養(yǎng)殖與市場(chǎng)風(fēng)險(xiǎn)防控合作協(xié)議3篇
- 二零二五年度駕校場(chǎng)地租賃與智能語(yǔ)音教學(xué)合同3篇
- 二零二五年度酒店租賃經(jīng)營(yíng)聯(lián)合運(yùn)營(yíng)合同范本3篇
- 二零二五年度高端酒吧場(chǎng)地租賃服務(wù)合同3篇
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 2025年國(guó)新國(guó)際投資有限公司招聘筆試參考題庫(kù)含答案解析
- 制造車(chē)間用洗地機(jī)安全操作規(guī)程
- 2025河南省建筑安全員-A證考試題庫(kù)及答案
- 商場(chǎng)電氣設(shè)備維護(hù)勞務(wù)合同
- 油氣田智能優(yōu)化設(shè)計(jì)-洞察分析
- 陜西2020-2024年中考英語(yǔ)五年真題匯編學(xué)生版-專(zhuān)題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- 助產(chǎn)專(zhuān)業(yè)的職業(yè)生涯規(guī)劃
- 新《國(guó)有企業(yè)管理人員處分條例》知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 骨質(zhì)疏松護(hù)理
評(píng)論
0/150
提交評(píng)論