7-6引线二元树.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7-6引线二元树

第7章 樹與二元樹 (Trees and Binary Trees) 7-1 樹的基本觀念 7-2 二元樹的基礎 7-3 二元樹的表示法 7-4 二元樹的走訪 7-5 二元搜尋樹 7-6 引線二元樹 7-7 樹的二元樹表示法 7-8 二元樹的應用 - 運算式處理 7-1 樹的基本觀念-說明 「樹」(Trees)是一種模擬現實生活中樹幹和樹枝的資料結構,屬於一種階層架構的非線性資料結構,例如:家族族譜,如下圖所示: 7-1 樹的基本觀念-架構1 樹的樹根稱為「根節點」(Root),在根節點之下是樹的樹枝,擁有0到n個「子節點」(Children),即樹的「分支」(Branch),節點A是樹的根節點,B、C、D….和H是節點A的子節點,即樹枝,如下圖所示: 7-1 樹的基本觀念-架構2 在樹枝下還可以擁有下一層樹枝,I和J是B的子節點,K、L和M是E的子節點,節點B是I和J的「父節點」(Parent),節點E是K、L和M的父節點,節點I和J擁有共同父節點,稱為「兄弟節點」(Siblings),K、L和M 是兄弟節點,B、C…和H節點也是兄弟節點,如下圖所示: 7-1 樹的基本觀念-定義 定義 7.1:樹的節點個數是一或多個有限集合,且: (1) 存在一個節點稱為根節點。 (2) 在根節點下的節點分成n = 0 個沒有交集的多個子集合t1、t2…, tn,每一個子集合也是一棵樹,而這些樹稱為根節點的「子樹」(Subtree)。 樹在各節點之間不可以有迴圈,或不連結的左、右子樹,如下圖所示: 7-1 樹的基本觀念-相關術語1 n元樹:樹的一個節點最多擁有n個子節點。 二元樹(Binary Trees):樹的節點最多只有兩個子節點。 根節點(Root):沒有父節點的節點是根節點。例如:節點A。 葉節點(Leaf):節點沒有子節點的節點稱為葉節點。例如:節點I、J、C、D、K、L、M、F、G和H。 祖先節點(Ancenstors):指某節點到根節點之間所經過的所有節點,都是此節點的祖先節點。 7-1 樹的基本觀念-相關術語2 非終端節點(Non-terminal Nodes):除了葉節點之外的其它節點稱為非終端節點。例如:節點A、B和E是非終端節點。 分支度(Dregree):指每個節點擁有的子節點數。例如:節點B的分支度是2,節點E的分支度是3。 階層(Level):如果樹根是1,其子節點是2,依序可以計算出樹的階層數。例如:上述圖例的節點A階層是1,B、C到H是階層2,I、J到M是階層3。 樹高(Height):樹高又稱為樹深(Depth),指樹的最大階層數。例如:上述圖例的樹高是3。 7-2 二元樹的基礎-定義 樹依不同分支度可以區分成很多種,在資料結構中最廣泛使用的樹狀結構是「二元樹」(Binary Trees),二元樹是指樹中的每一個「節點」(Nodes)最多只能擁有2個子節點,即分支度小於或等於2。 二元樹的定義如下所示: 定義 7.2:二元樹的節點個數是一個有限集合,或是沒有節點的空集合。二元樹的節點可以分成兩個沒有交集的子樹,稱為「左子樹」(Left Subtree)和「右子樹」(Right Subtree)。 7-2 二元樹的基礎-圖例 7-2 二元樹的基礎-歪斜樹 左邊這棵樹沒有右子樹,右邊這棵樹沒有左子樹,雖然擁有相同節點,但是這是兩棵不同的二元樹,因為所有節點都是向左子樹或右子樹歪斜,稱為「歪斜樹」(Skewed Tree),如下圖所示: 7-2 二元樹的基礎- 完滿二元樹(說明) 若二元樹的樹高是h且二元樹的節點數是2h-1,滿足此條件的樹稱為「完滿二元樹」(Full Binary Tree),如下圖所示: 7-2 二元樹的基礎- 完滿二元樹(節點數) 因為二元樹的每一個節點有2個子節點,二元樹樹高是3,也就是有3個階層(Level),各階層(以L表示階層)的節點數為 2 (L-1) ,如下所示: 第1階: 2 (L-1) = 2 (1-1) = 20 = 1 第2階:第1階節點數的2倍,1*2 = 2 (2-1) = 2 第3階:第2階節點數的2倍,2*2 = 2 (3-1) = 4 以此類推,可以得到每一階層的最大節點數是:2 (L-1),L是階層數,整棵二元樹的節點數一共是:20+21+22 = 7個,即23-1,可以得到: 20+21+22+….+2 (h-1) = 2h-1,h是樹高 7-2 二元樹的基礎-完整二元樹 若二元樹的節點不是葉節點,一定擁有2個子節點,不過節點總數不足2h-1,其中h是樹高,而且其節點編號是對應相同高度完滿二元樹的1至2h-1的節點編號,滿足此條件稱為完整二元樹(Complete Binary Tree),如下圖所示: 7-3 二元樹的表示法 7-3-1 二元樹陣列表

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档