原文链接:https://www.yuque.com/cppdev/algo/gw6px1
问题
求两个顶点之间的一条【路径长度最短】的路径
例子
用BFS,怎么得到【路径】:
改变队列的结构,入队列的顶点新增一个【域】(记录上一个顶点)
【路径】即一直往上找
【例子中】找到5,往上找,5->4->1->3
【实现】出队列的时候,不把结点删除掉,还保持链表,改变Q.front的指向就好了
- 将链队列的结点改为【双链】结点,即结点中包含【next和priou】两个指针
- 修改入队列的操作,插入新的队尾结点时,令其【priou】域的指针指向刚刚出队列的结点,即当前的队头指针所指结点
- 修改处队列的操作,出队列时,仅移动队头指针,而不将队头结点从链表中删除
算法
基于广度优先搜索遍历,并修改【链队列的结点结构】