首页 > 编程知识 正文

bfs算法求最短路径,dfs和bfs求最短路径的区别

时间:2023-05-04 18:26:58 阅读:186442 作者:4475

std:list q;

STD :3360 vector visited (cols 1;

for(intI=1; i=cols; I ) visited[i]=false;

visited[x]=true;

if (! l[x].empty () )

{

for (STD : list :迭代器I=l [ x ].begin (; I!=l[x].end (; I )

{

q.push_back(x; q.push_back(*I;

() ) ) ) )。

while (! q.empty () )

{

y=q.back (; q.pop_back (;

x=q.back (; q.pop_back (;

if (! visited[y] )

{

visited[y]=true;

if (! l[y].empty () )

for (STD : list :迭代器I=l [ y ].begin (; I!=l[y].end (; I )

{

if (! visited[*i] )

{q.push_back(y; q.push_back(*I; () ) ) ) )。

() ) ) ) )。

DST[x].push_back(y;

if (标志!=0) dfst[y].push_back(x;

() ) ) ) )。

() ) ) ) )。

() ) ) ) )。

这是我的DFS算法,用于在图形中查找生成树。 需要将其转换为BFS算法,以找到两个顶点之间的最短路径。 我该怎么办? BFS算法和上面的算法有点相似吗? 还是需要从头开始写?

最后保存l-邻接表dfst-生成树的数组x-开始顶点y-辅助变量

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。