图的宽度优先搜索

原创 2015年07月06日 21:56:59

图的宽度优先搜索是按照某种顺序访问一个节点的所有子节点这一层节点扫描结束后再扩展到下一层



访问顺序为1-2-3-4-5

现在在第一行输入n个节点,m个关系式

接下来输入m行关系式,每行关系式包含c,d分别表示c,d节点相连

要求输出图的宽度有限遍历顺序~~

#include <iostream>

#include <cstdio>
#include <queue>
using namespace std;
void dfs(int cur);
 int book[101];//用来标记该节点是否被访问过,初始化为未访问过
  int a[101][101];
   queue<int>q;
  int n;//n为总结点的个数
  int main()
  {

      int i,j,c,d,m,temp;//m为需要读入关系式的个数
      scanf("%d%d",&n,&m);
      for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)//从一开始是因为节点关系从1~n
        if (i==j) a[i][j]=0;//如果为同一点,则距离为0(事实上这一题0和无穷大可以归为一类,这样写只是为了方便理解,因为只考虑这两点是否相连,即是否等于1)
        else a[i][j]=10000;//设置两点不相连(即距离无穷大)
        for (i=1;i<=m;i++)
        {

            scanf("%d%d",&c,&d);
            a[c][d]=1;
            a[d][c]=1;//无向图
        }
        book[1]=1;//从1开始遍历(你也可以规定从哪里开始遍历)
        q.push(1);
        while(!q.empty())
        {
        printf("%d ",q.front());
        temp=q.front();//记录元素
        for (i=1;i<=n;i++)//按照某种顺序(这里其实默认从数字小到大排列)
        if ((a[i][temp]==1)&&book[i]==0)//如果第i个节点与cur相连,同时第i个没有被访问过
       {
        q.push(i);
        book[i]=1;//每个点只要访问一次
       }
       q.pop();
       }

     return 0;

}

  }

参考《啊哈!算法》



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

FZU 1408 位图(宽度优先搜索)

对这个题我只想说一句话,经典,完美,逆袭。一开始这个题我是这么做的:从0点出发去找离它最近的1点,,,无奈啊,,,爆了内存。。没找到合适的修改方法…. 后来我想到了从1点找0点的方法。这样就节省了很大...

穿越雷区--bfs宽度优先搜索

标题:穿越雷区 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Sicily 1135 飞越原野(BFS宽度优先搜索)

//BFS宽度优先搜索 //G[x][y][k]表示走到(x,y)后还能飞k步的最优值 #include #include #include #include using namespac...

算法7-4:宽度优先搜索

宽度优先搜索的基本思想就是先将源点添加到一个队列中, 每次从队列中取出一个顶点,将该顶点的邻居顶点中没有拜访过的顶点都添加到队列中,最后直到队列消耗完毕为止。 应用 宽...

循环的深入-宽度优先搜索

摘要:此算法用于图论中寻找最短路径dij或者mst最小生成树,是入门搜索算法之一,另一个是dfs深度优先搜索。此算法利用遍历可能的节点储存于队列中,再从队列取出节点,利用循环尝试搜索下一个可用节点,直...

Seven Puzzle AOJ 0121宽度优先搜索

1.题目原文 题目的链接:AOJ0121 Seven Puzzle 日本的oj,题目是日文  ┳━┳ノ(°_°ノ)  Seven Puzzle Time Limit : 1 sec, Mem...

BFS宽度优先搜索思想

http://blog.chinaunix.net/uid-26602509-id-3179280.html 1、宽度优先基本思想           宽度优先搜索算法(又称广度优先搜索算法)...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)