将树倒置(具有适当的压痕和间距)?

时间:2015-01-17 20:22:39

标签: java binary-tree

我简要介绍了一些关于普通binary_tree打印的问题和答案。 但我没有找到任何关于将它们颠倒打印的信息。

问题是:

我们有一个树,每个节点都是一个字符串列表。

            A
           / \
          B   C 

所以A不是字符或单个字符串,而是字符串列表。 我们想在最后一个列表下面的列表中打印每个String。

我们想打印整个树,如:

    B    C
    _______
       A   

最好的方法是什么。

注意:我们没有义务使用标准输出。 也许使用GUI输出可以使事情变得更容易。 例如文本区域,文本窗格或编辑器窗格等(来自摇摆)

我认为重要的两件事是:"每个节点的最大深度" AND"每个字符串列表中字符串的最大长度"

但我认为必须有更多,因为在打印时只使用以下树的上述属性。

         A
       /   \ 
      B     C
    /      /  \
   D      E    F

给出:

   D   E   F
   __________
   B   C   
   ______
   A

而不是:

  D      E   F
  __     _______
  B        C
  ____________
        A

我认为我们应该在递归函数中发送一个适当间距的参数。

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是递归地做,我。即计算给定节点的子节点数,而不是绘制长度与该数字成比例的条形,然后在内部调用所有子节点的函数。