c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...
基于廣度優(yōu)先遍歷算法的應(yīng)用
思考題:
(思考題答案:
BFS(廣度優(yōu)先遍歷)在一般的帶權(quán)圖中是不能解決最短路問(wèn)題,了解BFS的都知道,BFS是根據(jù)節(jié)點(diǎn)到源節(jié)點(diǎn)之間的節(jié)點(diǎn)數(shù)遍歷的,也就是先訪(fǎng)問(wèn)離源節(jié)點(diǎn)節(jié)點(diǎn)數(shù)最少的點(diǎn)。要使得BFS能計(jì)算最短路徑,需要圖結(jié)構(gòu)滿(mǎn)足所有的權(quán)值相等。否則應(yīng)該使用dijkstra算法去解決最短路。
權(quán)值相等的這種情況,在解決迷宮問(wèn)題的時(shí)候有很好的表現(xiàn)能力。因?yàn)槊詫m問(wèn)題滿(mǎn)足下面幾個(gè)特點(diǎn):
1.迷宮采用矩陣的方式去儲(chǔ)存的時(shí)候,矩陣中的每一個(gè)元素都是一個(gè)節(jié)點(diǎn)。
2.節(jié)點(diǎn)之間四近鄰可達(dá),或者其他的可達(dá)條件描述了節(jié)點(diǎn)之間的連接信息,保證了節(jié)點(diǎn)之間的權(quán)值是相等的。
3.節(jié)點(diǎn)之間是否連接是不明顯的,除非你去將迷宮矩陣轉(zhuǎn)化成圖矩陣,在不明顯的情況下,dijkstra算法就不太好理解實(shí)現(xiàn)。
對(duì)于這種情況的求最短路徑我們一般采用BFS求最短路徑,可以達(dá)到很好的效果。)
結(jié)論:
https://blog.csdn.net/feliciafay/article/details/9624909
總結(jié)
以上是生活随笔為你收集整理的c++ 遍历所有点且距离最短_编程小白暑期进阶笔记41-C语言数据结构与算法图遍历的应用...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 固态硬盘故障检测_diskgenius检
- 下一篇: ROS学习笔记四:用C++编写ROS发布