二叉樹的遍歷
例如,將中綴表達式(a+b)/c-d+e*f表示爲二叉樹
blog
- 前序遍歷 - 前綴表達式(波蘭式)
- 根節點->左子樹->右子樹
- 示例二叉樹的前序遍歷 +-/+abcd*ef
- 特色:第一位必定是根節點
- 中序遍歷 - 中綴表達式
- 左子樹->根節點->右子樹
- 找到根節點後,在其左側的都是左子樹下的結點,在其右側的都是右子樹下的結點
- 後序遍歷 - 後綴表達式(逆波蘭式)
- 左子樹->右子樹->根節點
- 示例二叉樹的後序遍歷:ab+c/d-ef*+
- 特色:最後一位必定是根節點
- 已知兩種遍歷,求第三種遍歷
- 若是要肯定二叉樹,已知必須包括中序遍歷
- 已知前序遍歷和後續遍歷 - 只能肯定祖先關係
- 前序的第一位和後續的最後一位確定是根節點
- 前序的第二位若是和後續的最後第二位同樣,那這個結點就是根節點下的左子樹;反之,則爲右子樹
· 若是前序的第二位是左子樹,則說明該樹的根節點下沒有右子樹
- 已知前序遍歷和中序遍歷
- 前序遍歷至關於入棧順序,中序遍歷至關於出棧順序
- 若是二叉樹沒有左子樹,則其前序遍歷和中序遍歷的順序相同