我正在学习数据结构类(class),并被分配使用 C 语言找到穿过迷宫的最短路径并实现队列数据结构。但是,我无法真正理解如何在这里使用队列。
我知道这个想法是从起始位置计算每一个可能的移动,当你击中目标时,你应该追溯到初始位置。这是我不明白的地方。因为如果我使用队列并删除导致目标的所有移动,则我没有数据可用于进行回溯,并且如果我不删除导致目标的移动(即保存所有可能的移动)当我实际进行回溯时移动并删除它们),我还不如使用堆栈。
我知道有些东西我不太明白,但我不知道它是什么。在这种情况下我将如何利用队列数据结构?
最佳答案
您的教授试图让您使用的方法称为“广度优先搜索”。队列的作用是决定下一步要探索哪些空间。当您查看可能采取的路径时,您会将所有尚未探索的路径排入队列。您不是继续沿着您所在的路径(这将是“深度优先搜索”)前进,而是将您需要检查的下一个位置出队,这将带您回到您之前考虑的位置之一。
实际实现取决于您,我建议您在线查找广度优先搜索的示例。
关于c - 使用队列数据结构解决迷宫?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40067071/