思路簡介:
①先序遍歷中第乙個字母即為根節點,在中序遍歷中找到根節點的位置
②把中序遍歷的字串序列從根節點分成兩部分,左側一部分構建左子樹,右側一部分構建右子樹
③在②的基礎上在先序遍歷中也找到構建左右子樹的部分
④遞迴還原二叉樹
⑤後序遍歷輸出即可
#include
#include
using
namespace
std ;
struct node
;node *reroot(string s1, string s2)
if( s1.size() > 1 )
return root ;
}//後序遍歷
void postorder(node *root)
}int main()
}
二叉樹 已知先序遍歷 中序遍歷,求後序遍歷
步驟 1.確定樹的根結點 樹根是在先序遍歷中最先出現的元素,即先序遍歷的第乙個結點是二叉樹的根。2.求解樹的子樹 找到根在中序遍歷的位置,位置左邊是二叉樹的左孩子,右邊是右孩子,若根結點的左邊或右邊為空,則該方向子樹為空 若左右子樹都為空,則該結點是葉子節點。3.對二叉樹的左右孩子分別進行步驟1,2...
二叉樹 已知後序 中序遍歷,求先序遍歷
二叉樹後序遍歷序列是dabec,中序遍歷序列debac,它的前序遍歷的序列是什麼 1.由後序 lrd 得知c肯定為根結點 2.由中序 ldr 以c為根節點該樹必然只有左子樹 3.先從後序入樹 dabec 由遍歷規則得知,e 為第二層節點 於是有ce 4.結合中序遍歷debac觀察節點,由於 e為第二...
二叉樹遍歷(已知先序 中序求後序)
時間限制 1000 ms 記憶體限制 65536 kb 提交數 11 通過數 9 輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。共兩行,第一行乙個字串,表示樹的先序遍歷,第二行乙個字串,表示樹的中序遍歷。樹的結點一律用小寫字母表示。一行,表示樹的後序遍歷序列。abdec dbeac deb...