如何在C 中实现多维阵列的多个节点

How to implement multiple nodes of multidimensional arrays in C++

本文关键字:阵列 节点 实现      更新时间:2023-10-16

我必须实现*算法(http://heyes-jones.com/astar.php)才能在C 中求解15个puzzle游戏。我的董事会最初状态,例如:

01 02 03 04
05 06 07 08 
09 10 11 00
13 14 15 16

稍后,我还需要将其下一个可能的状态保存在新节点中,并提供其他一些信息,例如董事会的启发式成本,已采取了数量的动作。我的节点总数可能高达400万,因为我的尺寸为4x4。
我有一些建议将优先队列用于此目的。任何身体都可以建议我更合适的方法。我还需要比较所有以前的节点,以与最新的节点进行比较,以避免相同的节点再次添加。请建议一些解决方案。

这个难题至少有两个基本数据表示。

首先是将板状态保存在每个节点中。

另一种表示形式是将移动保存在每个节点中。
遍历的图描述了所做的动作。可以计算董事会状态。

没有正确的方法。选择一种方法并使其正常工作。