是否有必要为 alpha-beta 剪枝算法创建一棵树?

Is it necessary to create a tree for the alpha-beta pruning algorithm?

我在网上看到过 minimax 和 alpha-beta 剪枝算法的实现。这些实现使用数组而不是树结构来生成可能的游戏动作。

是否有必要为这些算法创建一棵树,使用带有节点的结构?为什么要用数组来存储游戏树?

对于alpha-beta/minimax等相关算法,不需要显式创建树/存入内存。您通过递归函数调用隐式 "traverse" 一棵树,但永远不会显式创建树,也永远不需要在这种 "tree".

的任何节点中存储任何数据

给定一个游戏状态,您只是暂时需要一个数据结构来包含该状态的合法移动或后续游戏状态;像数组/列表这样的东西是最明显的数据结构。你只是暂时需要这个,这样你就可以遍历它并 运行 你的递归函数调用,之后你可以再次丢弃它们。您永远不必存储完整的树。