c – 如何找到BFS找到的实际路径?

我试图解决的问题涉及一个MRT系统的树.

每个节点最多可以连接到4个点,这很简单.这是我的想法

struct stop {
    int path,id;
    stoP* a;
    stoP* b;
    stoP* c;
    stoP* d;
};

我可以编写代码来保存BFS所需的所有信息,以搜索所有要点,但我的主要关注点是,即使BFS找到正确的点,我如何知道它的路径?

BFS将搜索每个级别,当其中一个到达目的地时,它将跳出运行循环,然后我将获得一个访问队列和一个未访问的队列,我应该如何告诉用户他需要什么停止访问队列是否填满BFS搜索的每个节点时访问?

解决方法

要这样做,您需要存储一个地图:V-> V [从顶点到顶点],其将从每个节点映射v,“发现”v的顶点u.

您将在BFS的迭代期间填充此地图.

稍后 – 您可以通过简单地从目标节点[在地图中]重建路径,直到您回到源头,并且它是yor路径[当然…相反]

注意,如果枚举顶点,则可以将该映射实现为数组.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...