怎么能得到只有一个树遍历的树?

时间:2013-01-28 07:04:00

标签: java data-structures tree binary-tree tree-traversal

考虑我想以序列化的方式传输二叉树,我只有一个字符串来传递那个树,我只能使用一次遍历的帮助,有什么方法可以做到吗? - (在Ebay被问到我)..

换句话说,只使用一个树遍历字符串可以生成二叉树吗?面试官还给了我一个提示,说我可以在没有叶子的地方使用null。

3 个答案:

答案 0 :(得分:2)

[EDIT]鉴于这似乎是一些特定的任务,而不是真正的现实问题,答案没有意义。第二次尝试:

看到你可以使用空值,你确实可以使用带有空值的预订。

a b null null c null null将是一棵看起来像(a (b) (c))的树,而(a (b (c)) )将被编码为a b c null null null null(请注意,我给每片叶子两个空子,也许它有效没有那个)

答案 1 :(得分:2)

http://www.seas.gwu.edu/~csci133/fall05/trees-fig4.jpg

请考虑上面图片中的上面的树,如果我们想只使用1次遍历传递一个字符串,我们可以通过在该特定位置没有孩子的时候放置特殊符号。

现在如果我们通过1 2 4 7 $ $ $ $ $ $ 3 $ 6 8 $ 9 $ $

                                        1
                                     /      \
                                   2        3
                                  /  \     / \
                                 4    5   $   6
                                / \  / \     / \
                               7   $ $  $    8   9
                              / \           /\  /\
                             $  $          $ $ $ $

这里$表示子项为空,因此移动到订单的下一个位置。

如果我错了,请纠正我,以上是不可能的......

答案 2 :(得分:0)

如果要表示string,byte []或流中的任何对象,可以查看JSON序列化或XML序列化。