遍歷二叉樹口訣 設(shè)某二叉樹的后序序列為cba,中序序列為abc,則前序序列為什么?
設(shè)某二叉樹的后序序列為cba,中序序列為abc,則前序序列為什么?前序遍歷過程是關(guān)于根的,中序遍歷過程是關(guān)于左根和右根的。因此,可以根據(jù)前序快速確定根,然后查看根在中序中的位置。中目分為左右樹兩部分。
設(shè)某二叉樹的后序序列為cba,中序序列為abc,則前序序列為什么?
前序遍歷過程是關(guān)于根的,中序遍歷過程是關(guān)于左根和右根的。因此,可以根據(jù)前序快速確定根,然后查看根在中序中的位置。中目分為左右樹兩部分。按照上述方法,可以確定左子樹和右子樹的根。例如,根據(jù)前序,可以確定a為根,確定a在中序中的位置,確保CB是a的左子樹上的節(jié)點,而不存在右子樹。確定a后,將中間順序的第二個值視為B,并檢查B在中間順序中的位置。C在B的左邊,確定C是B的左子樹,所以這個問題的具體二叉樹如下:所以后序是CBA
前序的順序:根->左->右中序:左->根->右后序:左->右->根前序:A,B,D,F(xiàn),J,G,K,C,e、 h,I,l,M中間順序:J,F(xiàn),D,K,G,B,a,h,e,l,I,M,C后順序:J,F(xiàn),K,G,D,B,h,l,M,I,e,C,a
前順序:根節(jié)點,前順序遍歷左子樹,前順序遍歷右子樹中間順序:中間順序遍歷左子樹,根節(jié)點,中間順序遍歷右子樹。因此,如果二者的遍歷結(jié)果相同,則整個二叉樹中的每個節(jié)點應(yīng)該沒有左子節(jié)點,只有右子節(jié)點。換句話說,前序和中間序遍歷變成:前序:根節(jié)點,前序遍歷右子樹,中間序:根節(jié)點,中間序遍歷右子樹
假設(shè)根是a,左子是B,右子是C。其中a,B和C也是二叉樹。如果兩個遍歷是“相反的”,則B必須為空或C必須為空。因此,標(biāo)準(zhǔn)答案應(yīng)該是:任何節(jié)點都沒有左子節(jié)點,或者任何節(jié)點都沒有右子節(jié)點。其中D是對的,但不是唯一的答案。