[图] 最短路径-两顶点间-BFS应用

本文介绍了如何使用BFS算法寻找图中两个顶点间的最短路径。通过修改队列节点结构,增加一个记录前一个顶点的域,可以追踪路径。在实现过程中,使用双链队列,节点包含`next`和`priou`指针,调整入队和出队操作,从而得到路径信息。
摘要由CSDN通过智能技术生成

原文链接:https://www.yuque.com/cppdev/algo/gw6px1

问题

求两个顶点之间的一条【路径长度最短】的路径

例子

这里写图片描述

用BFS,怎么得到【路径】:
改变队列的结构,入队列的顶点新增一个【域】(记录上一个顶点)
【路径】即一直往上找
【例子中】找到5,往上找,5->4->1->3
【实现】出队列的时候,不把结点删除掉,还保持链表,改变Q.front的指向就好了

  1. 将链队列的结点改为【双链】结点,即结点中包含【next和priou】两个指针
  2. 修改入队列的操作,插入新的队尾结点时,令其【priou】域的指针指向刚刚出队列的结点,即当前的队头指针所指结点
  3. 修改处队列的操作,出队列时,仅移动队头指针,而不将队头结点从链表中删除

算法

基于广度优先搜索遍历,并修改【链队列的结点结构】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geodoer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值