Java 打印递归树

Java 打印递归树,java,recursion,tree,Java,Recursion,Tree,我正在写minimax作为项目的一部分,但是很难检查它是否正常工作。如果我能把它的功能打印出来,那将非常有用 有没有一种简单的方法可以打印递归调用树,选择对情况很重要的变量?通过参数跟踪递归深度(在minimax中,您无论如何都会这样做)。然后打印深度*少量空格,然后在每次调用中获得感兴趣的变量 player=1, move=... player=2, move=... player=1, move=... ... player=2, move=... 您可能还希望打印

我正在写minimax作为项目的一部分,但是很难检查它是否正常工作。如果我能把它的功能打印出来,那将非常有用


有没有一种简单的方法可以打印递归调用树,选择对情况很重要的变量?

通过参数跟踪递归深度(在minimax中,您无论如何都会这样做)。然后打印深度*少量空格,然后在每次调用中获得感兴趣的变量

player=1, move=...
  player=2, move=...
    player=1, move=...
    ...
  player=2, move=...
您可能还希望打印每个递归调用的返回值


如果你非常想要一个漂亮的树的图片,对上面的输出进行后期处理,并将其提供给树绘图包。

通过一个参数跟踪递归深度(在minimax中,你无论如何都会这样做)。然后打印深度*少量空格,然后在每次调用中获得感兴趣的变量

player=1, move=...
  player=2, move=...
    player=1, move=...
    ...
  player=2, move=...
您可能还希望打印每个递归调用的返回值


如果你非常想要一棵树的漂亮图片,请对上面的输出进行后期处理,并将其提供给树绘图包。

使用访问者遍历树并打印每个访问过的树节点如何?或者在每个节点上使用适当的toString()方法?@Dirk:在minimax算法中,实际上并没有在内存中构建树。递归中隐含了树结构。使用访问者遍历树并打印每个访问的树节点如何?或者在每个节点上使用适当的toString()方法?@Dirk:在minimax算法中,实际上并没有在内存中构建树。递归中隐含了树结构。