考虑这样一种情况,你有两个节点列表,你只知道其中一个代表某棵树的前序遍历,另一个代表同一棵树的后序遍历。
我相信可以从这两个列表完全重建树,而且我认为我有一种算法可以实现它,但还没有证明。由于这将是研究生项目的一部分,我需要绝对确定它是可能的和正确的(在数学上被证明)。但它不会成为项目的重点,所以我想知道是否有可引用的来源(例如论文或书籍)证明了这一点。(也许在TAOCP中? 有人知道可能的章节吗?)
简而言之,我需要一种已经被证明的算法,在可引用的资源中,从其前序和后序遍历中重构出一棵树。
注意:所讨论的树可能不是二叉树,或平衡树,或者任何能够使它变得轻松的东西。
注2:仅使用前序或后序列表甚至更好,但我认为这是不可能的。
注3:一个节点可以有任意数量的子节点。
注4:我只关心兄弟姐妹的顺序。 当只有一个孩子时,左右并不重要。
我相信可以从这两个列表完全重建树,而且我认为我有一种算法可以实现它,但还没有证明。由于这将是研究生项目的一部分,我需要绝对确定它是可能的和正确的(在数学上被证明)。但它不会成为项目的重点,所以我想知道是否有可引用的来源(例如论文或书籍)证明了这一点。(也许在TAOCP中? 有人知道可能的章节吗?)
简而言之,我需要一种已经被证明的算法,在可引用的资源中,从其前序和后序遍历中重构出一棵树。
注意:所讨论的树可能不是二叉树,或平衡树,或者任何能够使它变得轻松的东西。
注2:仅使用前序或后序列表甚至更好,但我认为这是不可能的。
注3:一个节点可以有任意数量的子节点。
注4:我只关心兄弟姐妹的顺序。 当只有一个孩子时,左右并不重要。