先序和中序確定二叉樹 怎么由先序和中序來找二叉樹?
怎么由先序和中序來找二叉樹?在遍歷順序中,第一順序是左、右,中間順序是左、中、右。因此該方法是通過一階(根節(jié)點必須存在且必須是子樹遍歷的第一個節(jié)點)找到根節(jié)點,然后根據(jù)相應根節(jié)點在中間階的位置來區(qū)分左
怎么由先序和中序來找二叉樹?
在遍歷順序中,第一順序是左、右,中間順序是左、中、右。因此該方法是通過一階(根節(jié)點必須存在且必須是子樹遍歷的第一個節(jié)點)找到根節(jié)點,然后根據(jù)相應根節(jié)點在中間階的位置來區(qū)分左右子樹。左子樹是它的左子樹,右子樹是它的右子樹。
例如,如果a是根,則在中間順序中,左子樹是dfegb,右子樹是cikjh。然后利用遞歸的思想對左子樹進行分析。Dfegb在pre-order中以B開頭,因此B是根節(jié)點。從中間的順序,我們可以看到這棵樹只有左子樹dfeg;D是根,只有右子樹FEG;E是根,左葉是f,右葉是g。
然后看cikjh。從前序我們知道C是根,從中序我們知道只有右子樹ikjh。從前序h作為根,從中間序我們可以看到只有左子樹IkJ。這棵樹的根是我,只有右邊的子樹。J是根,K是它的左葉。
如何由二叉樹的先序和中序序列畫出二叉樹?
二叉樹可以由兩次遍歷的順序唯一確定。例如,給定一個二叉樹,前序序列是abdecfg,中序序列是dbeafcg。二叉樹的根可以由前序序列確定為a,因為前序遍歷順序是從根到左子樹再到右子樹。從中序序列可以看出DBE在a的左子樹中,F(xiàn)CG在a的右子樹中,因為B在前序序列中跟隨a,所以B必須是a的左子樹的根。在前序序列中,a的左子樹是DBE。前序序列的遍歷順序為:左子樹、父子樹和右子樹。我們可以看到D是B的左子樹,E是B的右子樹。我們也可以分析根a的右子樹。前序序列中的ABDE已經(jīng)遍歷了根和左子樹,所以剩余的CFG就是右子樹遍歷的序列??梢钥闯?,C是右子樹的根,f是C的左子樹,G是C的右子樹,因此,二叉樹的序列遍歷順序應該是ABCDEFG。