2.3 - Binary Tree Traversal
介紹Binary Tree追蹤法則
1. 介紹
Left child必須在Right child之前拜訪
Pre-order(前序):root → left child → right child
In-order(中序):left child → root → right child
Post-order(後序):left child → right child → root
level-order:依照level由上而下,由左而右
2. 應用
2.1 求Binary Tree的前中後序
pre-order: A-B-D-E-C-F-G
in-order: D-B-E-A-F-C-G
post-order: D-E-B-F-G-C-A
level-order: A-B-C-D-E-F-G
2.2 給予Binary Tree的(前序、中序)或是(後序、中序)可決定唯一的Binary Tree
(complete/full binary tree的前、中、後序皆可決定唯一binary tree)
證明:
當節點數=0時,binary tree為空。pre-order=in-order=0,此binary tree為空。
假設節點數=n-1時此定理成立。
當節點數=n時,從pre-order中找出root為R,再到in-order中找到R的位置。
2.3 Recursive Traversal Algorithm
2.4 Recursive Traversal Algorithm的應用
copy():複製binary tree。
equal():比較binary tree。
count():求binary tree節點總數。
height():求binary tree高度。
swap():將binary tree的children對調。
2.5 以binary tree表示運算式
leaf -> 運算元
non-leaf -> 運算子
運算子優先權越高,level越大
Last updated