1. 程式人生 > >根據遍歷序列確定二叉樹

根據遍歷序列確定二叉樹

由二叉樹的先序序列和中序序列

1.在先序序列中,第一個結點一定是二叉樹的根結點
2.在中序序列中,根結點必然將中序序列分割成兩個子序列;前一個子序列是根結點的左子樹的中序序列,後一個是右子樹的
3.根據這兩個子序列,在先序序列中找到對應的左右子序列
4.在先序序列中,左子序列的第一個結點是左子樹的根結點,右子序列同理
5.如此遞迴下去

這裡寫圖片描述

總結:先序配合中序時,中序負責找左右子序列,先序負責找子樹的根節點

由二叉樹的中序序列和後序序列

1.在後序序列,根結點在序列尾部
2.在中序序列,根結點必在其中間,左邊是左子樹子孫,右邊同理
3.根據這兩個子序列,在後序序列找到對應的左右序列
4.在後序序列中,左子序列的尾結點是左子樹的根結點,右子序列同理
5.如此遞迴下去

這裡寫圖片描述

總結:後序配合中序時,中序負責找左右子序列,後序負責找子樹的根結點

注意:根據先序序列和後序序列是不能確定一個二叉樹的

綜上所述:配合中序序列時,先序和後序都是確定子樹的根結點,區別是根結點在其子序列的位置(先序是子序列的第一個,後序是子序列的最後一個);而中序序列都是在先或後序序列找到根結點後,找到左右子序列
為了方便記憶:“中序定根,先後定左右”

--------------------- 本文來自 ImHeathen 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/sinat_39253550/article/details/73614755?utm_source=copy