c++提示输入二叉树的先序与中序遍历,构建二叉树生成后序并输出二叉树与后序遍历的结果

2024-11-15 21:08:40
推荐回答(1个)
回答1:

//*已知先序和中序
BinaryTreeNode* PreIncreateTree(int *spre, int *epre, int *sin, int *ein)
{
int rootvalue = *spre;
BinaryTreeNode* t = new BinaryTreeNode(rootvalue);
int k = 0;
while (sin + k k++;
if (k>0)
t->lchild = PreIncreateTree(spre + 1, spre + k, sin, sin + k - 1);
if (k t->rchild = PreIncreateTree(spre + k + 1, epre, sin + k + 1, ein);
return t;
}//四个参数依次是先序序列开始地址(给个数组名就行),先序序列结束地址(数组名加上int数)后序序列开始地址,后序序列结束地址
void postOrder(BinaryTreeNode* root)
{
if (root)
{
postOrder(root->lchild);
postOrder(root->rchild);
cout << root->element << ' ';
}
}//后序遍历