如何在C 中实现多维阵列的多个节点
How to implement multiple nodes of multidimensional arrays in C++
我必须实现*算法(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。
我有一些建议将优先队列用于此目的。任何身体都可以建议我更合适的方法。我还需要比较所有以前的节点,以与最新的节点进行比较,以避免相同的节点再次添加。请建议一些解决方案。
这个难题至少有两个基本数据表示。
首先是将板状态保存在每个节点中。
另一种表示形式是将移动保存在每个节点中。
遍历的图描述了所做的动作。可以计算董事会状态。
没有正确的方法。选择一种方法并使其正常工作。
相关文章:
- 反向给定链表中的K节点
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- OpenMP阵列性能较差
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 如何找到2个单链表的公共节点
- 当我的阵列太大时出现分段错误
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 为什么我的删除节点函数实际上没有删除节点?
- 我们可以删除链表中静态内存中的节点吗
- 如何在pugixml中获取节点的内部XML
- 位阵列上的快速AND运算
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 阵列必须使用大括号封闭的初始器进行初始化
- 信息实际上并未存储在节点阵列中
- 如何在C 中实现多维阵列的多个节点
- 将阵列转换为节点
- 创建节点阵列