c - 使用队列数据结构解决迷宫?

标签 c data-structures queue

我正在学习数据结构类(class),并被分配使用 C 语言找到穿过迷宫的最短路径并实现队列数据结构。但是,我无法真正理解如何在这里使用队列。

我知道这个想法是从起始位置计算每一个可能的移动,当你击中目标时,你应该追溯到初始位置。这是我不明白的地方。因为如果我使用队列并删除导致目标的所有移动,则我没有数据可用于进行回溯,并且如果我不删除导致目标的移动(即保存所有可能的移动)当我实际进行回溯时移动并删除它们),我还不如使用堆栈。

我知道有些东西我不太明白,但我不知道它是什么。在这种情况下我将如何利用队列数据结构?

最佳答案

您的教授试图让您使用的方法称为“广度优先搜索”。队列的作用是决定下一步要探索哪些空间。当您查看可能采取的路径时,您会将所有尚未探索的路径排入队列。您不是继续沿着您所在的路径(这将是“深度优先搜索”)前进,而是将您需要检查的下一个位置出队,这将带您回到您之前考虑的位置之一。

实际实现取决于您,我建议您在线查找广度优先搜索的示例。

关于c - 使用队列数据结构解决迷宫?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40067071/

相关文章:

c - "Overloading"具有 `#define` 常量的宏

algorithm - O(n^2) 从哪里来 O(n^2 * log n)?

python - 两列数据结构 - Python

javascript - 如何在 D3.js V4 中制作静态力图?

Python:队列和线程的阻塞问题

objective-c - 如何从 C 函数获取对象的当前实例

c - 转义句 Sed System() C

c - 对 `fill_server_address' 的 undefined reference collect2 : ld returned 1 exit status

c - 用于频繁随机访问的数组或链表?

c - C中定义类型实现的队列