-6
  public static <AnyType> void mysteryPrint(BinaryNode<AnyType> t) {
      if( t! = null) {
          System.out.println(t.getElement() );
          mysteryPrint(t.getLeft() );
          System.out.println(t.getElement() );
          mysteryPrint(t.getRight() );
          System.out.println(t.getElement() );
      }
  }

               A
       B               C
           D        E

我已经制作了上面的树,我想知道最简单的是跟踪这段代码找到输出吗?

到目前为止,我正在获取 ABBDDB,但我迷失了方向。

4

1 回答 1

2

如果没有跟踪,查看给定树应该打印什么相对简单。该方法的结构意味着字符串将如下所示:

<content><left sub-tree><content><right sub-tree><content>

因此,您所要做的就是不断地用该模式替换左右子树(用空字符串表示不存在的子树)并获取字符串。

对于您的示例树,它看起来像这样(使用 [ 和 ] 显示替换):

A<left sub-tree>A<right sub-tree>A
A[B<left sub-tree>B<right sub-tree>B]A[C<left sub-tree>C<right sub-tree>C]A
A[B[]B[D<left sub-tree>D<right sub-tree>D]B]A[C[E<left sub-tree>E<right sub-tree>E]C[]C]A
A[B[]B[D[]D[]D]B]A[C[E[]E[]E]C[]C]A

所以方法打印出 ABBDDDBACEEECCA

于 2012-06-20T22:31:20.230 回答