遍歷二叉樹(shù)口訣 知道前序遍歷,中序遍歷怎么求后序遍歷?
知道前序遍歷,中序遍歷怎么求后序遍歷?分析過(guò)程:以下面的例子說(shuō)明:已知二叉樹(shù)的前序遍歷序列和中序遍歷序列分別為abdgcefh和dgbaechf,求二叉樹(shù)和后序遍歷序列。分析:前序遍歷序列的第一個(gè)特征
知道前序遍歷,中序遍歷怎么求后序遍歷?
分析過(guò)程:以下面的例子說(shuō)明:已知二叉樹(shù)的前序遍歷序列和中序遍歷序列分別為abdgcefh和dgbaechf,求二叉樹(shù)和后序遍歷序列。分析:前序遍歷序列的第一個(gè)特征是根節(jié)點(diǎn)。對(duì)于中間順序遍歷,根節(jié)點(diǎn)位于中間順序遍歷序列的中間,左部分為根節(jié)點(diǎn)左子樹(shù)的中間順序遍歷序列,右部分為根節(jié)點(diǎn)右子樹(shù)的中間順序遍歷序列。一階:abdgcefh-->abdgcefh中間階:dgbaechf-->dgbaechf得出結(jié)論:a是樹(shù)的根,a有左子樹(shù)和右子樹(shù),左子樹(shù)有BDG節(jié)點(diǎn),右子樹(shù)有CEFH節(jié)點(diǎn)。一階:BDG-->bdg中間階:DGB-->dgb得出結(jié)論:B是左子樹(shù)的根節(jié)點(diǎn),B沒(méi)有右子樹(shù),但有左子樹(shù)。一階:DG-->dg中間階:DG-->dg得出結(jié)論:D是B的左子樹(shù)的根,D沒(méi)有左子樹(shù),但有右子樹(shù)。一階:CEFH-->cefh中間階:echf-->echf得出結(jié)論:C是右子樹(shù)的根節(jié)點(diǎn),C有左子樹(shù)(只有e節(jié)點(diǎn)),右子樹(shù)(有FH節(jié)點(diǎn))。一階:FH-->fh中間階:HF-->F得出結(jié)論:F是C的左子樹(shù)的根,F(xiàn)有左子樹(shù)(只有h節(jié)點(diǎn)),沒(méi)有右子樹(shù)。將二叉樹(shù)還原為:cdefgh posterorder transversal sequence:gdbehfca
首先了解概念:前序遍歷:訪問(wèn)根節(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹(shù)之前。中間順序遍歷:訪問(wèn)根節(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹(shù)時(shí)。后序遍歷:訪問(wèn)根節(jié)點(diǎn)的操作發(fā)生在遍歷其左右子樹(shù)之后。例:遍歷dbcefgha后,為了遍歷edcbahfg,先查找前序遍歷(聯(lián)機(jī)示例)解決方案:遍歷dbcefgha后,先看a是總根節(jié)點(diǎn),然后按順序遍歷edcbahfg找到a的位置,然后edcb在a的左分支,HFG在a的右分支。重復(fù)前兩步,查找從最后一個(gè)位置的對(duì)應(yīng)點(diǎn)遍歷后,按順序找到左、右分支最后遍歷,得到aecdbhgf,然后自己驗(yàn)證…
知樹(shù)的前序遍歷,后序遍歷,怎么求中序遍歷?
先訪問(wèn)根節(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。在遍歷左、右子樹(shù)時(shí),我們還是先訪問(wèn)根節(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。
后序遍歷:首先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根節(jié)點(diǎn)。遍歷左、右子樹(shù)時(shí),仍先遍歷左子樹(shù),再遍歷右子樹(shù),最后遍歷根節(jié)點(diǎn)。