輸入某二叉樹的後序遍歷和中序遍歷的結果,請輸出前序遍歷序列。假設輸入的後序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入後序遍歷序列和中序遍歷序列,重建二叉樹並返回後序遍歷序列
輸入某二叉樹的後序遍歷和中序遍歷的結果
輸出前序遍歷序列
7 4 2 5 8 6 3 14 7 2 1 5 3 8 6
1 2 4 7 3 5 6 8
#include#include#includetypedef struct node* bintree;
struct node;
bintree build(int post ,int in,int size)
void preorder(bintree t) //前序遍歷 }
int main()
else //如果前乙個元素不是空格,那麼說明與前乙個元素一同構成的數 例如:10 }}
}int incount=0;
for(i=0;i='0'&&inn[i]<='9')
else}}
} //如果後序遍歷的結點數與中序遍歷的結點數相同且不為0,那麼可以找到對應二叉樹
if(postcount==incount&&postcount!=0)
return 0;
}
已知二叉樹先序遍歷中序遍歷求後序遍歷
思路簡介 先序遍歷中第乙個字母即為根節點,在中序遍歷中找到根節點的位置 把中序遍歷的字串序列從根節點分成兩部分,左側一部分構建左子樹,右側一部分構建右子樹 在 的基礎上在先序遍歷中也找到構建左右子樹的部分 遞迴還原二叉樹 後序遍歷輸出即可 include include using namespac...
二叉樹 已知先序遍歷 中序遍歷,求後序遍歷
步驟 1.確定樹的根結點 樹根是在先序遍歷中最先出現的元素,即先序遍歷的第乙個結點是二叉樹的根。2.求解樹的子樹 找到根在中序遍歷的位置,位置左邊是二叉樹的左孩子,右邊是右孩子,若根結點的左邊或右邊為空,則該方向子樹為空 若左右子樹都為空,則該結點是葉子節點。3.對二叉樹的左右孩子分別進行步驟1,2...
二叉樹遍歷 已知先序和中序,求後序遍歷
如下 include include include include using namespace std 先定義樹的結構體 struct treenode 建樹 treenode build string preorder,string inorder 先序的第乙個結點為樹的根節點 char c...