freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

樹和二叉樹的基本知識(shí)-文庫吧資料

2025-07-01 03:03本頁面
  

【正文】 2的差為LN+1,這是描述單詞相似程度的量。 [樣例輸入] AANASPASASCASCIIBASBASIC [樣例輸出] 13 圖3[算法分析]首先要對(duì)建樹的過程有一個(gè)了解。文件總長度不超過32K,至少有一行數(shù)據(jù)。[問題輸入] ,該文件為一個(gè)單詞列表,每一行僅包含一個(gè)單詞和一個(gè)換行/回車符。4.例如圖3左邊的單詞列表就對(duì)應(yīng)于右邊的單詞查找樹。為了提高查找和定位的速度,通常都畫出與單詞列表所對(duì)應(yīng)的單詞查找樹,其特點(diǎn)如下:1.根結(jié)點(diǎn)不包含字母,除根結(jié)點(diǎn)外每一個(gè)結(jié)點(diǎn)都僅包含一個(gè)大寫英文字母;2.從根結(jié)點(diǎn)到某一結(jié)點(diǎn),路徑上經(jīng)過的字母依次連起來所構(gòu)成的字母序列,稱為該結(jié)點(diǎn)對(duì)應(yīng)的單詞。為此,引入一個(gè)隊(duì)列來存儲(chǔ)等待訪問的子結(jié)點(diǎn),設(shè)一個(gè)隊(duì)首和隊(duì)尾指針分別表示出隊(duì)、進(jìn)隊(duì)的下標(biāo)。思想如下:若某個(gè)結(jié)點(diǎn)被訪問,則該結(jié)點(diǎn)的子結(jié)點(diǎn)應(yīng)被記錄下來,等待被訪問。按照先序遍歷思想編寫的遞歸過程如下:Procedure tra1(t,m) {訪問以t為根結(jié)點(diǎn)的含有m棵子樹的過程}BeginIf t Nil Then Begin Write(t^.data,’ ’); {訪問根結(jié)點(diǎn)} For I:=1 To m Do {前序遍歷各子樹}tra1(t^.child[I],m);End;End;也可以用堆棧的方法編寫這個(gè)程序,留給讀者作為練習(xí)。圖1層次遍歷的結(jié)果為:{1,2,3,4,5,6,7,8,9};4.葉結(jié)點(diǎn)遍歷:有時(shí)我們把所有的數(shù)據(jù)信息都存放在葉結(jié)點(diǎn)中,而其余結(jié)點(diǎn)都是用來表示數(shù)據(jù)之間的某種分支或?qū)哟侮P(guān)系,這種情況就用這種方法。圖1先序遍歷的結(jié)果為:{1,2,5,6,3,4,7,8,9};2.后序(根)遍歷:先從左到右遍歷各棵子樹,再訪問根結(jié)點(diǎn)??朔松鲜龅?種存儲(chǔ)方法的缺點(diǎn),假設(shè)樹的度為10,樹的結(jié)點(diǎn)僅存放字符,則這棵樹的數(shù)據(jù)結(jié)構(gòu)定義如下:Type tree=^node; node=Record data:Char; firstchild,next: tree; End;Var t:tree;四、樹的遍歷在應(yīng)用樹結(jié)構(gòu)解決問題時(shí),往往需要按照某種次序獲得樹中全部結(jié)點(diǎn)的信息,這種操作叫做“樹的遍歷”。3.父親孩子表示法:利用雙鏈表結(jié)構(gòu),每個(gè)結(jié)點(diǎn)包括一個(gè)數(shù)據(jù)域和二個(gè)指針域,一個(gè)指向該結(jié)點(diǎn)的若干孩子結(jié)點(diǎn),一個(gè)指向其父結(jié)點(diǎn)。有興趣的同學(xué)可以參考有關(guān)書籍與程序。當(dāng)樹的度越大時(shí),空指針域所占比例也越大,給存儲(chǔ)空間造成很大浪費(fèi)。2.孩子表示法:利用單鏈表,每個(gè)結(jié)點(diǎn)包括一個(gè)數(shù)據(jù)域和若干個(gè)指針域,每個(gè)指針都指向一個(gè)孩子結(jié)點(diǎn)。1.父親表示法:定義一個(gè)數(shù)組,每個(gè)數(shù)組元素為一個(gè)記錄,除了存放一個(gè)結(jié)點(diǎn)的數(shù)據(jù)信息外,還存放該結(jié)點(diǎn)的父結(jié)點(diǎn)編號(hào)。用括號(hào)表示法表示圖1的步驟如下:=(T)=(1(T1,T2 ,T3 )) {A是根結(jié)點(diǎn),有3棵子樹,用逗號(hào)隔開}=(1(2(T11,T12),3,4(T31))) {分別對(duì)3棵子樹做同樣的操作}=(1(2(5,6),3,4(7(T311,T312))))=(1(2(5,6),3,4(7(8,9))))實(shí)際上,以上方法是按照樹的層次逐步展開,直到所有結(jié)點(diǎn)都已列出。6.森林(forest)是m(m=0)棵互不相交的樹的集合。注意,不同子樹上的結(jié)點(diǎn)之間不存在路徑。如圖1中,結(jié)點(diǎn)1和結(jié)點(diǎn)8之間存在著一條路徑,并可用(8)表示這條路徑,該條路徑的長度為3。圖2,如果從一個(gè)結(jié)點(diǎn)出發(fā),按層次自上而下沿著一個(gè)個(gè)樹枝能到達(dá)另一結(jié)點(diǎn),稱它們之間存在著一條路徑。又如對(duì)于一棵反映了父子關(guān)系的家族樹,兄弟結(jié)點(diǎn)之間是按照排行大小而有序排列的,所以它是一棵有序樹。所以,樹雖然是非線性結(jié)構(gòu),但也是有序結(jié)構(gòu)。一棵樹中所有結(jié)點(diǎn)的層次的最大值稱為樹的深度(depth),圖1所示這棵樹的深度為4。3.定義一棵樹的根結(jié)點(diǎn)的層次(level)為1,其它結(jié)點(diǎn)的層次等于它的父結(jié)點(diǎn)的層次數(shù)加1。稱以某個(gè)結(jié)點(diǎn)為根的子樹中的任一結(jié)點(diǎn)都是該結(jié)點(diǎn)的子孫。稱從根結(jié)點(diǎn)到某個(gè)子結(jié)點(diǎn)所經(jīng)過的所有結(jié)點(diǎn)為這個(gè)子結(jié)點(diǎn)的祖先。2.在用上述圖形表示的樹結(jié)構(gòu)中,對(duì)兩個(gè)用線段(稱為樹枝)連接的相關(guān)聯(lián)的結(jié)點(diǎn),稱上端的結(jié)點(diǎn)為下端結(jié)點(diǎn)的父結(jié)點(diǎn),稱下端的結(jié)點(diǎn)為上端結(jié)點(diǎn)的子結(jié)點(diǎn),稱同一個(gè)父結(jié)點(diǎn)的多個(gè)子結(jié)點(diǎn)為兄弟結(jié)點(diǎn)。根結(jié)點(diǎn)以外的分支結(jié)點(diǎn)又稱為內(nèi)部結(jié)點(diǎn)(如結(jié)點(diǎn)7)。度為0的結(jié)點(diǎn)稱為葉結(jié)點(diǎn)(又稱樹葉leaf,如結(jié)點(diǎn)9)。圖1圖1就是一棵典型的樹結(jié)構(gòu)。在樹型結(jié)構(gòu)中,二叉樹是最常用的結(jié)構(gòu),它的分支個(gè)數(shù)確定,又可以為空,具有良好的遞歸特性,特別適宜于程序設(shè)計(jì),因此我們常常將一般樹型結(jié)構(gòu)轉(zhuǎn)換成二叉樹進(jìn)行處理。樹在計(jì)算機(jī)領(lǐng)域中也有廣泛應(yīng)用,如在編譯系統(tǒng)中,用樹表示源程序的語法結(jié)構(gòu);在數(shù)據(jù)庫系統(tǒng)中,樹型結(jié)構(gòu)是數(shù)據(jù)庫層次模型的基礎(chǔ),也是各種索引和目錄的主要組織形式。20Jsoi2006春季函授 B層次講義(3) 常州市第一中學(xué) 林厚從 20樹和二叉樹的基本知識(shí)樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),用它能很好地描述有分支和層次特性的數(shù)據(jù)集合。樹型結(jié)構(gòu)在現(xiàn)實(shí)世界中廣泛存在,如把一個(gè)家族看作為一棵樹,樹中的結(jié)點(diǎn)為家族成員的姓名及相關(guān)信息,樹中的關(guān)系為父子關(guān)系,即父親是兒子的前驅(qū),兒子是父親的后繼;把一個(gè)國家或一個(gè)地區(qū)的各級(jí)行政區(qū)劃分看作為一棵樹,樹中的結(jié)點(diǎn)為行政區(qū)的名稱及相關(guān)信息,樹中的關(guān)系為上下級(jí)關(guān)系,如一個(gè)城市包含有若干個(gè)區(qū),每個(gè)區(qū)又包含有若干個(gè)街道,每個(gè)街道又包含有若干個(gè)居委會(huì);把一本書的結(jié)構(gòu)看作是一棵樹,樹中的結(jié)點(diǎn)為書、章、節(jié)的名稱及相關(guān)信息,樹中的關(guān)系為包含關(guān)系。在許多算法中,常用樹型結(jié)構(gòu)描述問題的求解過程、所有解的狀態(tài)和求解的對(duì)策等。第一節(jié) 樹一、樹的定義一棵樹(tree)是由n(n0)個(gè)元素組成的有限集合,其中:1.每個(gè)元素稱為結(jié)點(diǎn)(node);2.有一個(gè)特定的結(jié)點(diǎn),稱為根結(jié)點(diǎn)或樹根(root);3.除根結(jié)點(diǎn)外,其余結(jié)點(diǎn)被分成m(m=0)個(gè)互不相交的有限集合T0,T1,T2,……Tm1,而每一個(gè)子集Ti又都是一棵樹(稱為原樹的子樹subtree)。從樹的定義可以看出:1.樹是遞歸定義的,這就決定了樹的操作和應(yīng)用大都是采用遞歸思想來解決; 2.一棵樹中至少有1個(gè)結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)就是根結(jié)點(diǎn),如上圖中的結(jié)點(diǎn)1;3.只有根結(jié)點(diǎn)沒有前趨結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)都有唯一的一個(gè)前趨結(jié)點(diǎn);4.所有結(jié)點(diǎn)都可以有0或多個(gè)后繼結(jié)點(diǎn);二、樹的基本概念下面以圖1為例給出樹結(jié)構(gòu)中的一些基本概念:1.一個(gè)結(jié)點(diǎn)的子樹個(gè)數(shù),稱為這個(gè)結(jié)點(diǎn)的度(degree),如結(jié)點(diǎn)1的度為3,結(jié)點(diǎn)3的度為0。度不為0的結(jié)點(diǎn)稱為分支結(jié)點(diǎn)(如結(jié)點(diǎn)7)。樹中各結(jié)點(diǎn)的度的最大值稱為這棵樹的度(又稱寬度),圖1所示這棵樹的(寬)度為3。如結(jié)點(diǎn)1是結(jié)點(diǎn)4的父結(jié)點(diǎn),結(jié)點(diǎn) 4都是結(jié)點(diǎn)1的子結(jié)點(diǎn),它們又是兄弟結(jié)點(diǎn),同時(shí)結(jié)點(diǎn)2又是結(jié)點(diǎn)6的父結(jié)點(diǎn)。如結(jié)點(diǎn)7是結(jié)點(diǎn)8的祖先。如結(jié)點(diǎn)9都是結(jié)點(diǎn)4的子孫。如結(jié)點(diǎn)4的層次為2,結(jié)點(diǎn)7的層次為3,結(jié)點(diǎn)9的層次為4。4.若樹中各結(jié)點(diǎn)的子樹是按照一定的次序從左向右安排的,它們之間的次序不能互換,這樣的樹稱之為有序樹,否則稱之為無序樹。例如,對(duì)于下面圖2中的兩棵樹,若看作為無序樹,則是相同的;若看作為有序樹,則是不同的,因?yàn)楦Y(jié)點(diǎn)A的兩棵子樹的次序不同。因?yàn)槿魏螣o序樹都可以當(dāng)作具有任一次序的有序樹來處理,所以下面如果不特別指明,均認(rèn)為樹是有序的??捎寐窂剿?jīng)過的結(jié)點(diǎn)序列表示路徑,路徑的長度等于路徑上的結(jié)點(diǎn)個(gè)數(shù)減1。從根結(jié)點(diǎn)出發(fā),到樹中的其余結(jié)點(diǎn)一定存在著一條路徑。但是,如果把樹看成是一個(gè)圖的話(可以把樹理解為是圖的一個(gè)子類),那么我們就可以繼承圖的路徑的定義,認(rèn)為不同子樹上的兩個(gè)結(jié)點(diǎn)應(yīng)該是有路徑的(圖論意義上的路徑)。三、樹的表示方法和存儲(chǔ)結(jié)構(gòu)樹的表示方法有多種,如圖1采用的就是一種形象的樹形表示法;另外還有一種常用的表示方法“括號(hào)表示法”,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1