二叉樹先知道後序和中序,求先序

c3tc3tc3t發表於2013-08-18
比如已知後序DABEC  中序DEBAC,求先序

後序DABEC 中序DEBAC
由後序最後一個字母知:整個樹的開始結點為C;
由中序C的位置知:C前面的為結點C的左子樹;C後面的為結點C的右子樹;
所以經過第一次推理,C為根結點,DEBA為其左子樹;
然後去掉C,考慮下面的左子樹;
後序DABE 中序DEBA
由後序最後一個字母知:整個左子樹的開始結點為E;
由中序E的位置知:E前面的為結點E的左子樹;E後面的為結點E的右子樹;
所以經過第一次推理,E為開始結點,D為E的左結點.BA為E的右結點.
然後去掉DE,考慮下面E的右子樹;
後序AB 中序BA
易知:B為根結點,A為其右結點.
所以整個樹為:C(E(D,B(,A)));
先序:CEDBA

相關文章