




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C++超詳細(xì)講解樹與二叉樹目錄樹樹的定義樹的名詞解釋樹的表示樹的存儲(chǔ)結(jié)構(gòu)二叉樹的概念及結(jié)構(gòu)二叉樹的概念二叉樹的性質(zhì)二叉樹的存儲(chǔ)結(jié)構(gòu)順序存儲(chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
樹
樹的定義
Q:什么是樹
A:樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合。把它叫做樹是因?yàn)樗雌饋硐褚豢玫箳斓臉?,也就是說它是根朝上,而葉朝下的。
Q:樹有什么特點(diǎn)
有一個(gè)特殊的結(jié)點(diǎn),稱為根結(jié)點(diǎn),根節(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn)。
除根節(jié)點(diǎn)外,其余結(jié)點(diǎn)被分成M(M0)個(gè)互不相交的集合T1、T2、、Tm,其中每一個(gè)集合Ti(1=i=m)又是一棵結(jié)構(gòu)與樹類似的子樹。每棵子樹的根結(jié)點(diǎn)有且只有一個(gè)前驅(qū),可以有0個(gè)或多個(gè)后繼。
樹是遞歸定義的
對(duì)于樹的定義還需要強(qiáng)調(diào)兩點(diǎn):
當(dāng)n0時(shí),根結(jié)點(diǎn)是唯一的,不可能存在多個(gè)根結(jié)點(diǎn)。數(shù)據(jù)結(jié)構(gòu)中的樹是只能有一個(gè)根結(jié)點(diǎn)。
當(dāng)m0時(shí),子樹的個(gè)數(shù)沒有限制,但它們一定是互不相交的。像下圖中的結(jié)構(gòu)就不符合樹的定義,因?yàn)樗鼈兌加邢嘟坏淖訕洹?/p>
樹的名詞解釋
節(jié)點(diǎn)的度:一個(gè)節(jié)點(diǎn)含有的子樹的個(gè)數(shù)稱為該節(jié)點(diǎn)的度;如上圖:A的為3
葉節(jié)點(diǎn):度為0的節(jié)點(diǎn)稱為葉節(jié)點(diǎn);如上圖:I,G,K,G,L,M節(jié)點(diǎn)為葉節(jié)點(diǎn)
非終端節(jié)點(diǎn)或分支節(jié)點(diǎn):度不為0的節(jié)點(diǎn);如上圖:B、D、C、E、F等節(jié)點(diǎn)為分支節(jié)點(diǎn)
雙親節(jié)點(diǎn)或父節(jié)點(diǎn):若一個(gè)節(jié)點(diǎn)含有子節(jié)點(diǎn),則這個(gè)節(jié)點(diǎn)稱為其子節(jié)點(diǎn)的父節(jié)點(diǎn);如上圖:A是B的父節(jié)點(diǎn)
孩子節(jié)點(diǎn)或子節(jié)點(diǎn):一個(gè)節(jié)點(diǎn)含有的子樹的根節(jié)點(diǎn)稱為該節(jié)點(diǎn)的子節(jié)點(diǎn);如上圖:B是A的孩子節(jié)點(diǎn)
兄弟節(jié)點(diǎn):具有相同父節(jié)點(diǎn)的節(jié)點(diǎn)互稱為兄弟節(jié)點(diǎn);如上圖:B、C是兄弟節(jié)點(diǎn)
樹的度:一棵樹中,最大的節(jié)點(diǎn)的度稱為樹的度;如上圖:樹的度為3
節(jié)點(diǎn)的層次:從根開始定義起,根為第1層,根的子節(jié)點(diǎn)為第2層,以此類推
樹的高度或深度:樹中節(jié)點(diǎn)的最大層次;如上圖:樹的高度為4
節(jié)點(diǎn)的祖先:從根到該節(jié)點(diǎn)所經(jīng)分支上的所有節(jié)點(diǎn);如上圖:A是所有節(jié)點(diǎn)的祖先
子孫:以某節(jié)點(diǎn)為根的子樹中任一節(jié)點(diǎn)都稱為該節(jié)點(diǎn)的子孫。如上圖:所有節(jié)點(diǎn)都是A的子孫
森林:由m棵互不相交的樹的集合稱為森林
樹的表示
樹的存儲(chǔ)結(jié)構(gòu)
說到存儲(chǔ)結(jié)構(gòu),自然就會(huì)想到我們前面講過的順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩種結(jié)構(gòu)。
順序存儲(chǔ)結(jié)構(gòu):樹中某個(gè)結(jié)點(diǎn)的孩子可以有多個(gè),若將樹中所有結(jié)點(diǎn)存儲(chǔ)到數(shù)組中,結(jié)點(diǎn)的存儲(chǔ)位置無法直接反應(yīng)其邏輯關(guān)系,因此:簡(jiǎn)單的順序存儲(chǔ)結(jié)構(gòu)是不能滿足樹的實(shí)現(xiàn)要求的
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn),完全可以實(shí)現(xiàn)對(duì)樹的存儲(chǔ)結(jié)構(gòu)的表示。
表示方式:實(shí)際中樹有很多種表示方式,如:雙親表示法,孩子表示法、孩子兄弟表示法等等。我們這里就簡(jiǎn)單的了解其中最常用的孩子兄弟表示法。
代碼演示
typedefintDataType;
structNode
structNode*_firstChild1;//第一個(gè)孩子結(jié)點(diǎn)
structNode*_pNextBrother;//指向其下一個(gè)兄弟結(jié)點(diǎn)
DataType_data;//結(jié)點(diǎn)中的數(shù)據(jù)域
};
圖像演示
二叉樹的概念及結(jié)構(gòu)
二叉樹的概念
Q:什么是二叉樹
A:二叉樹是n個(gè)結(jié)點(diǎn)的有限集合。該集合或者為空集(空二叉樹)或者由一個(gè)根結(jié)點(diǎn)和兩棵互不相交的,分別稱為根結(jié)點(diǎn)的左子樹和右子樹的二叉樹組成。
Q:二叉樹有什么特點(diǎn)
每個(gè)結(jié)點(diǎn)最多有兩棵子樹,二叉樹不存在度大于2的結(jié)點(diǎn)。左子樹和右子樹是有順序的,次序不能任意顛倒。即使樹中某結(jié)點(diǎn)只有一棵子樹,也要區(qū)分左子樹還是右子樹。
Q:二叉樹有什么基本形式
空二叉樹只有一個(gè)根節(jié)點(diǎn)根節(jié)點(diǎn)只有左子樹根節(jié)點(diǎn)只有右子樹根節(jié)點(diǎn)既有左子樹又有右子樹
Q:特殊的二叉樹有哪些
(1)滿二叉樹:在一顆二叉樹中,如果所有分支結(jié)點(diǎn)都存在左子樹和右子樹,并且所有葉子都在同一層上,這樣的二叉樹稱為滿二叉樹。如果一個(gè)二叉樹的層數(shù)為K,且結(jié)點(diǎn)總數(shù)是(2^k)-1,則它就是滿二叉樹。
(2)完全二叉樹:對(duì)于一顆具有n個(gè)結(jié)點(diǎn)的二叉樹按層序編號(hào),如果編號(hào)為i(1=i=n)的結(jié)點(diǎn)與同樣深度的滿二叉樹中編號(hào)為i的結(jié)點(diǎn)在二叉樹中的位置完全相同,則稱這棵二叉樹為完全二叉樹。滿二叉樹是一種特殊的完全二叉樹。
二叉樹的性質(zhì)
性質(zhì)一:在二叉樹的第i層上至多有2^(i-1)個(gè)結(jié)點(diǎn)。
性質(zhì)二:深度為k的二叉樹至多有2^(k)-1個(gè)結(jié)點(diǎn)。
性質(zhì)三:對(duì)任何一棵二叉樹,如果度為0,其葉結(jié)點(diǎn)個(gè)數(shù)為n0,度為2的分支結(jié)點(diǎn)個(gè)數(shù)為n2,則有n0=n2+1。
性質(zhì)四:具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為
性質(zhì)五:對(duì)于具有%20n%20個(gè)結(jié)點(diǎn)的完全二叉樹,如果按照從上至下從左至右的數(shù)組順序?qū)λ泄?jié)點(diǎn)從%200%20開始編號(hào),則對(duì)于任意結(jié)點(diǎn)%20i%20有:
如果%20i=1,則結(jié)點(diǎn)%20i%20是二叉樹的根,無雙親;如果%20i1,則其雙親是結(jié)點(diǎn)%201/2
如果%202in,則結(jié)點(diǎn)%20i無左孩子;否則其左孩子是結(jié)點(diǎn)2i
如果%202in,則結(jié)點(diǎn)%20i無右孩子;否則其右孩子是結(jié)點(diǎn)2i+1
二叉樹的存儲(chǔ)結(jié)構(gòu)
順序存儲(chǔ)結(jié)構(gòu)
順序結(jié)構(gòu)存儲(chǔ)就是使用數(shù)組來存儲(chǔ),一般使用數(shù)組只適合表示完全二叉樹。因?yàn)椴皇峭耆鏄鋾?huì)有空間的浪費(fèi)。而現(xiàn)實(shí)中使用中只有堆才會(huì)使用數(shù)組來存儲(chǔ),二叉樹順序存儲(chǔ)在物理上是一個(gè)數(shù)組,在邏輯上是一顆二叉樹。
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
二叉樹每個(gè)結(jié)點(diǎn)最多有兩個(gè)孩子,所以為它分配一個(gè)數(shù)據(jù)域和兩個(gè)指針域是比較自然的想法,我們稱這樣的鏈表叫做二叉鏈表。結(jié)點(diǎn)結(jié)構(gòu)如圖:
代碼演示
typedefintBTDataType;
struct
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于成立可降解FSC綠色包裝材料公司可行性研究報(bào)告(范文)
- 婦幼保健院提質(zhì)增效項(xiàng)目可行性研究報(bào)告
- 六年級(jí)四班家長(zhǎng)會(huì)課件
- 小學(xué)2025-2025第二學(xué)期德育活動(dòng)工作計(jì)劃
- 2025-2030汽車玻璃行業(yè)市場(chǎng)發(fā)展分析及投融資與風(fēng)險(xiǎn)研究報(bào)告
- 2025-2030比薩行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030智慧農(nóng)業(yè)產(chǎn)業(yè)市場(chǎng)深度調(diào)研及發(fā)展現(xiàn)狀與投資前景研究報(bào)告
- 2025-2030年品牌設(shè)計(jì)行業(yè)市場(chǎng)深度分析及競(jìng)爭(zhēng)格局與投資價(jià)值研究報(bào)告
- 酒店場(chǎng)地租賃預(yù)付款及客房服務(wù)保證合同
- 房貸合同編號(hào)信息查詢及使用權(quán)限合同
- 風(fēng)電場(chǎng)項(xiàng)目策劃書
- 技師手工木工(木制家具工)理論知識(shí)考核要素細(xì)目表(征求意見稿)
- 氣壓傳動(dòng)課件 項(xiàng)目四任務(wù)一 折彎?rùn)C(jī)的快速排氣回路組裝與調(diào)試
- 公務(wù)員2018年國(guó)考《申論》真題卷及答案(副省級(jí))
- 機(jī)械應(yīng)力促進(jìn)髓核誘導(dǎo)的軟骨形成
- 社區(qū)居民積分制管理實(shí)施方案
- 高中生物教材易錯(cuò)易混概念辨析(新人教版2019)
- 《創(chuàng)新創(chuàng)意設(shè)計(jì)》課件
- 初高中物理銜接講座(初高中物理對(duì)比)
- 寵物酒店商業(yè)計(jì)劃書創(chuàng)新創(chuàng)業(yè)計(jì)劃書2024年
- 2024年徐州市小學(xué)六年級(jí)畢業(yè)抽測(cè)語(yǔ)文模擬試卷
評(píng)論
0/150
提交評(píng)論