欢迎光临散文网 会员登陆 & 注册

广度优先搜索介绍

2020-07-08 14:16 作者:NOOBMb  | 我要投稿

广度优先搜索,是一种首先访问所有子节点来搜索的一种算法,过程如下:

如果还不够清楚,那么上一张动图:

广度优先搜索的用处:

1.搜索一个问题的解,尤其是最优解,具体可看(https://www.luogu.com.cn/problem/P1162)等题;

2.用于数和图的遍历;

源码如下:



#include<bits/stdc++.h>

using namespace std;

int cango[10][10],have[10],start;

queue<int>node;

void BFS()

{

    while(1)

{

int flag=0;

for(int i=0;i<10;i++)

{

if(cango[node.front][i]&&!have[i])

{

flag=1;

cout<<i;

node.push(i);

}

}

        if(flag)

node.pop();

else

break;

}

return;

}

int main()

{

int i,j; 

cin>>x;

for(i=0;i<10;i++)

for(j=0;j<10;j++)

cin>>cango[i][j];

cout<<x;

node.push(x);

BFS();

return 0;

}


广度优先搜索介绍的评论 (共 条)

分享到微博请遵守国家法律