首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问他们相邻的未被访问过的顶点,直到所有顶点都被访问过,遍历结束。
广度优先遍历更加适用于所有边的权值相同的情况
#include<iostream>
#include<queue>
using namespace std;
int main()
{
int points,edgs;
cin>>points>>edgs;
int p1,p2;
int flag[10];
int edg[10][10];
int infinity=99999999;
for (int i=1;i<=points;i++)
{
for (int j=1;j<=points;j++)
{
if (i==j)
{
edg[i][j]=0;
}
else
{
edg[i][j]=infinity;
}