首先,前序、中序、后序的遍歷順序要明確:前序:父節(jié)點(diǎn)、左子節(jié)點(diǎn)、右子節(jié)點(diǎn);中序:左子節(jié)點(diǎn)、父節(jié)點(diǎn)、右子節(jié)點(diǎn);后序:左子節(jié)點(diǎn)、右子節(jié)點(diǎn)、父節(jié)點(diǎn);后序:左子節(jié)點(diǎn)、右子節(jié)點(diǎn)、右子節(jié)點(diǎn);首先根據(jù)前序遍歷,確定整個(gè)二叉樹的根節(jié)點(diǎn)(前序的第一個(gè)節(jié)點(diǎn));然后通過(guò)中間序遍歷,整個(gè)二叉樹可以根據(jù)根節(jié)點(diǎn)直接劃分為兩個(gè)子樹。
此時(shí),按照預(yù)序和中間序一步一步地繪制整個(gè)二叉樹并不困難。然后我們可以編寫后序遍歷序列。例如:已知二叉樹的前序遍歷序列為bcDEFH,中序遍歷序列為bdCEaHF,寫后序遍歷序列。根據(jù)預(yù)排序,樹的根節(jié)點(diǎn)是a;根據(jù)中間順序和根節(jié)點(diǎn),B、D、C、E在根節(jié)點(diǎn)的左子樹上,H、F在根節(jié)點(diǎn)的右子樹上;通過(guò)對(duì)每個(gè)子樹的逐步分析,樹是a/bf/CH/De后一個(gè)順序是:decbhfa
根是由前一個(gè)順序的第一個(gè)節(jié)點(diǎn)決定的,中間順序決定左子樹和右子樹,如第一個(gè)節(jié)點(diǎn)a。根據(jù)中間順序,a的左子樹是DBE,右子樹是FC。然后根據(jù)前一階確定第二根B。按照中間順序,B的左子樹是D,右子樹是e。依次重復(fù),直到遍歷所有節(jié)點(diǎn)。所以后序遍歷debfca