後序Post-order(左、右、中).ppt

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

德明科技大學資訊科技系 樹狀結構 Tree Structure chapter 7 樹狀結構 陣列與鏈結串列都是有序串列,資料以一個線性的順序串起;但是很多情形下,資料以分支的方式組成 一個公司組織架構,總經理下有數個部門,每個部門又分成數個組 各部門是平行沒有管轄關係 樹狀(tree)結構 像樹一樣有許多分支,描述資料之間的關係 樹狀結構 樹狀結構是由一個或多個節點組合而成的有限集合,它必須要滿足以下兩點: Tree不可以是空集合,至少有一個節點稱為root(根節點) 根節點包含T1 , T2,....., Tn 的子樹 ( subtree ) 樹狀結構 樹狀結構中不可以含有迴圈、重邊或不相連的情況 以下的例子為非樹狀結構(稱為圖形) 樹狀結構的專有術語 樹根(root):每一棵樹的最上層的節點,稱為樹根,而A就是為這棵樹的樹根 節點(node):樹的節點代表著某項資料,A、B…、L都是節點 子樹(subtree):把A去掉之後,就剩下以B、C及D為樹根的三棵子樹 樹林(forest):是由N≧0個互斥子樹的集合。把樹根A去掉之後,剩下的部分就叫樹林 階度(level):表示節點的階層位置 樹根A的階度是1 B的階度是2 K的階度是4。 樹狀結構的專有術語 高度(height):一棵樹中節點的最大階度就是高度,?而此樹的高度為4 父節點(parent):每一個節點的上一個節點就是父節點,例如B節點的父節點就是A 子節點(children):每一個節點的下一個節點就是子節點,D的子節點就是 H、I及J 分支度(degree):一個節點的子樹之個數稱為該節點的分支度,例如: A的分支度為3, B的分支度是2 終點節點(terminal node): 分支度為0的節點, 又稱樹葉節點,共有 K、F、G、H、I、L 二元樹(Binary tree) 二元樹是一般樹狀結構的特例 定義: 二元樹可以是空集合,若不為空,則: 具有根節點(Root)及左子樹和右子樹。 左、右子樹亦是二元樹。 簡單的說,二元樹最多只能有兩個子節點,就是分支度小於或等於2 二元樹特性 二元樹特性 二元樹特性 二元樹特性 二元樹的應用與變化都非常多樣 常見的特殊二元樹種類有 斜曲(skew)二元樹 嚴格(strict)二元樹 完滿(full)二元樹 完整(complete)二元樹 斜曲二元樹 Skew binary tree 當一個二元樹每個節點都 只有左子樹:左斜曲 只有右子樹:右斜曲 嚴格二元樹 二元樹內每個非樹葉節點都有兩個子結點 也就是二元樹內,每個節點的分支度只有 0(代表樹葉)與 2(代表內部節點)兩種 完滿二元樹 Full Binary Tree 一個高度為 h 的完滿二元樹即是高度為 h 且具 2h -1 個節點的二元樹 完整二元樹 一個二元樹有 n 個節點且高度為 h ,若且唯若,滿足: 2 h-1 -1 n 2h -1 節點編號與高度h的完滿二元樹之前n個節點編號一致 完整二元樹 二元樹表示法 二元樹可以用陣列與鏈結串列表示 以陣列(Array)表示 適合完滿二元樹 不適合斜曲樹 容易追蹤(Traversal) 以鏈結串列(Linked List)表示 適合處理斜曲樹 但Link空間約浪費一半 以陣列表示二元樹 將二元樹想像成一個完滿二元樹,並使用一維陣列建立二元樹的表示方法及索引值的配置 以陣列表示二元樹 假設陣列int A[n]; A[0]: root,A[1], A[2]: 第一層,以此類推 A[i]的左子節點是A[2*i+1],左子節點是A[2*i+2] A[i]的父節點是A[i/2] 優點 非常適合完整二元樹的應用 可以計算方式取得節點的左右子節點 不必另外浪費空間紀錄左右子節點 缺點 非完整二元樹時很容易造成空間浪費 以鏈結串列表示二元樹 使用動態記憶體配置來建立二元樹,類似結構陣列表示法的節點結構,只是成員變數改成兩個指向左和右子樹的指標 以鏈結串列表示二元樹 優點 新增與刪除節點容易 適合一般二元樹的表示 缺點 不易找到父節點 必須有一半左有的空間浪費在左右子節點的鏈結上 假設共n個節點,因此會有2n個鏈結 但是只有n-1個節點被鏈結指到 二元樹的追蹤 Binary Tree Traversal 追蹤樹中的每一個節點,且每個節點恰好被尋訪一次 中序追蹤 又稱中序走訪 左子樹→樹根→右子樹 沿樹的左子樹一直往下,直到無法前進,再後退回父節點,再往右子樹一直往下 中序追蹤 前序追蹤 又稱前序走訪 樹根→左子樹→右子樹 從根節點開始處理,根節點處理完成之後,再往左子樹走,直到無法前進,再處理右子樹 前序追蹤 後序追蹤 又稱後序走訪 左子樹→右子樹→樹根 沿樹的左子樹一直往下完成之後,再往右子樹一直往下,直到無法前進,再

文档评论(0)

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

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

1亿VIP精品文档

相关文档