二叉樹 前序和中序得到後序

2021-07-11 10:36:24 字數 1201 閱讀 8175

二叉樹前序:遍歷順序為,根節點、左子樹、右子樹;中序:遍歷順序為,左子樹、根節點、右子樹;後序:遍歷順序為,左子樹、右子樹、根節點

可以發現,二叉樹前序中的第乙個節點為樹的根節點root,然後找出root在中序裡面的位置,就可以把前序和中序分別劃分為左、右子樹兩個部分,然後遞迴呼叫即可。

舉個例子,前序 5 3 2 4 8 6 10 中序 2 3 4 5 6 8 10

首先,5肯定是二叉樹的根節點,然後5在中序裡面的位置是3號(從0開始),此位置前面的是左子樹中的節點,右面的是右子樹的節點,即5 || 3 2 4 || 8 2 6 , 2 3 4 || 5 || 6 8 10,對紅色的左子樹序列、藍色的右子樹序列

繼續上述過程,直至結束。

//二叉樹 前序和中序得到後序

二叉樹前序,中序,後序求法

二叉樹的前序,中序,後序序列是根據根節點的訪問順序定義的。即 前序序列 根節點 左子樹 右子樹 中序序列 左子樹 根節點 右子樹 後序序列 左子樹 右子樹 根節點 給出中序序列和另外乙個序列,就可以求出第三個序列。例題 poj 2255 tree recovery include include i...

構建二叉樹(前序 中序,中序 後序)

題目鏈結 1.返回值和引數 輸出前序和中序的 vector int 和起止索引 int,輸出樹的根節點 2.單層遞迴邏輯 前序和中序只有乙個元素,返回,否則在中序中找到前序的首位元素,在將中序按次元素劃分為兩個部分,當前節點的左子樹根據劃分的左邊部分得到,右子樹根據右邊部分得到 3.終止條件 當前陣...

已知二叉樹前序和中序求後序

設某二叉樹 前序遍歷為 abcdefghi 中序遍歷為 bcaedghfi 求該二叉樹的後序遍歷?因為二叉樹前序遍歷為 abcdefghi,所以這棵樹的根結點為 又因為中序遍歷為 bcaedghfi,所以這棵樹的左子樹為bc,右子樹為edghfi 現在先看左子樹中序遍歷 bc,由前序遍歷abcdef...