Algorithm 树中有一个孩子时的后序和前序?

Algorithm 树中有一个孩子时的后序和前序?,algorithm,data-structures,graph,tree,traversal,Algorithm,Data Structures,Graph,Tree,Traversal,我有前序abcdefg和后序cbfgeda,最后的树如下图所示,但由于一些节点有一个子节点,这非常困难。有没有人能帮我更详细地描述一下如何创建最终的树 如果它不是一个完整的二叉树,那么对于树的给定前序和后序就没有唯一的解决方案 编辑:因为这里不关心唯一性,所以您也可以有这样一棵树: 由于在具有单个子节点的父节点中不再具有左或右子节点的确切顺序,因此可以将该子节点置于左或右 PS:构建此树的步骤。我们知道A是根,因为它是后序中的最后一个,也是前序中的第一个,从前序我们知道B是A的子级,从后序我们

我有前序abcdefg和后序cbfgeda,最后的树如下图所示,但由于一些节点有一个子节点,这非常困难。有没有人能帮我更详细地描述一下如何创建最终的树


如果它不是一个完整的二叉树,那么对于树的给定前序和后序就没有唯一的解决方案

编辑:因为这里不关心唯一性,所以您也可以有这样一棵树:

由于在具有单个子节点的父节点中不再具有左或右子节点的确切顺序,因此可以将该子节点置于左或右


PS:构建此树的步骤。我们知道
A
是根,因为它是后序中的最后一个,也是前序中的第一个,从前序我们知道
B
A
的子级,从后序我们也知道
D
也是
A
的子级。对于其余部分,您可以对每个节点及其子节点递归执行类似的步骤。考虑到代码< b >代码> b>代码> d>代码>是代码< >代码< <代码>的直接子集。您可以找到两个子树<代码> {b,c}和<代码> {d,e,f,g} <代码> < /p> < p>您有以下内容:

前订单:abcdefg 邮购:cbfgeda

您需要使用它们创建一个树。因为您没有索引,所以可以创建多棵树。让我们做一个你在问题中问的

注: 前序=根左-右 后序=左-右根

步骤1:确定根

显然,“a”是根

步骤2:确定“a”的左右子树

因为在问题中,bc在一边,其余在另一边,你可以看到前序和后序分别如下所示:

前序:| a | | bc | | defg| 后序:| cb | | fged | a|


现在,对树的其余部分应用相同的技术,您将能够创建所需的树。

Postorder和PreOrder还是Postorder和Inorder?您的问题的标题和文本要求的不是同一件事。我们需要按顺序+前顺序或按顺序+后顺序组合来创建树(除非是完整的二叉树)。您是否正在尝试创建一个包含前序和后序的树?请参考此:确定这是我的草图,但尚未完全理解。这对我来说是个不寻常的例子。确保此示例是使用预订单和后订单创建的@当一个节点有一个子节点时,ManikaSharma的唯一性在这里并不重要。请添加一个子节点。独特性在这里并不重要。在这里创建一个就足够了。@MaryamPanahi好的,我会在几分钟内编辑我的答案。好的,但我需要一些步骤。例如,以a作为主根开始。然后从b开始,作为一个左撇子…@MaryamPanahi我已经添加了一些步骤“对于其余的,你可以递归地执行类似“我的问题就在这一步中”的步骤。请你继续讲一两句好吗?忽略“认为了解B和D”您是否可以继续聊天?