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

时间:2016-10-16 05:08:51

标签: c data-structures queue

我正在学习数据结构中的一个类,并且通过使用C和实现队列数据结构来找到通过迷宫找到最短路径的任务。但是,我无法真正了解如何在此处使用队列。

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

我知道有些东西我不太了解,但我无法弄清楚它是什么。在这种情况下,我如何利用队列数据结构?

1 个答案:

答案 0 :(得分:2)

你的教授试图让你使用的是“广度优先搜索”。队列用于确定接下来要探索的空间。当您查看可能的路径时,您将所有尚未探索的路径排入队列。你不是继续沿着你所在的路径(这将是“深度优先搜索”),而是将你需要检查的下一个地点出列,这将带你回到你之前考虑的其中一个位置。

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