使用DFS序列化树

时间:2014-10-16 10:24:20

标签: algorithm tree graph-algorithm depth-first-search

根据this post on Wikipedia,给定具有不同元素的树,预订或后序与有序配对足以唯一地描述树。但是,使用后订单预订会在树结构中留下一些含糊之处。

我正在寻找一个可以证明这种说法的快速示例。

所以给出以下树:

enter image description here

订单如下:

Pre Order:  1, 2, 4, 3, 5, 7, 8, 6
In Order:   4, 2, 1, 7, 5, 8, 3, 6
Post Order: 4, 2, 7, 8, 5, 6, 3, 1

如何使用预订订单订单后订单对此树进行反序列化?

由于

1 个答案:

答案 0 :(得分:0)

因此,声称在给定树的预订和有序遍历的情况下,我们可以唯一地构造树。

在你的例子中 预购:1,2,4,3,5,7,8,6 按顺序:4,2,1,7,5,8,3,6

现在,树中的根节点将成为预先遍历遍历中的第一个节点。此外,在顺序遍历中出现的值之前出现的所有数字都位于以该节点为根的左子树中。同样,出现在值之后的所有值都将位于右侧子树中。因此,以递归方式继续将对树进行反序列化。您可以在http://www.geeksforgeeks.org/construct-tree-from-given-inorder-and-preorder-traversal/

了解更多相关信息

同样,您可以在给定后序和顺序遍历的情况下反序列化树。这里,在邮政订单遍历中出现的最后一个值将是树的根。您可以从此处http://www.programcreek.com/2013/01/construct-binary-tree-from-inorder-and-postorder-traversal/

了解来自订购后和有序的反序列化