首页 > 解决方案 > 图表示是C算法

问题描述

我正在尝试实现“C”和“SDL”(用于表示)算法来解决“解锁我”益智游戏。对于从未听说过这个谜题的人:这是一个棋盘游戏,您必须通过移动不同尺寸的其他形状来将红色形状(大多数情况下它是一个盒子)移出网格。

董事会示例

网格表示

我正在尝试使用 DFS(深度优先搜索)和 BFS(广度优先搜索)来解决网格问题,我确实了解这些算法。

我不是在寻找代码解决方案,我只是在寻找文档或可以解释我如何将我的网格表示与 DFS 或 BFS 一起使用的人,在stackoverflow和类似网站上搜索后我无法回答。

我花了两天时间研究 BFS 和 DFS,但考虑到前面给出的网格表示,我仍然无法回答一些问题:

什么是节点?

链接是什么?

邻接矩阵是什么?

我感谢任何文档链接。

我已经阅读过的一些文档链接: Adjacency List Adjacency Matrix BFS DFS

标签: cgraph-theorydepth-first-searchbreadth-first-search

解决方案


每个特定的搜索问题都可以接受方便的专门表示。但从理论上讲,这可能是一个很好的起点,您可以将“节点”视为“板配置”,将“连接 c1 到 c2 的边”视为“将配置 c1 转换为 c2 的移动”。


推荐阅读