2011-05-06 171 views
1

我正在写minimax作为项目的一部分,但它非常难以检查它是否正常工作。如果我能打印出它所做的一棵树,它将非常有用。打印递归树

有没有简单的方法来打印一个递归调用树,选择任何变量对情况很重要?

+0

如何使用Visitor遍历树并打印每个访问的treenode?或者在每个节点上使用适当的toString()方法? – Dirk 2011-05-06 17:35:29

+0

@Dirk:在minimax算法中,你实际上并没有在内存中构建一棵树。树结构隐含在递归中。 – 2011-05-06 17:38:38

回答

1

通过参数跟踪递归深度(以minimax为准,无论如何你都会这样做)。然后打印深度*少量的空间,然后在每次调用有趣的变量,以获得

player=1, move=... 
    player=2, move=... 
    player=1, move=... 
    ... 
    player=2, move=... 

您可能还需要打印每个递归调用的返回值。

如果你非常想要一张树的美丽图片,后处理上述的输出并将其提供给树形图包。

+0

什么是一个很好的绘图软件包(开源)? – 2011-05-06 18:43:41