• 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历(BFS)


    题目描述

    给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)

    输入

    输入第一行为整数n(0< n <100),表示数据的组数。
    对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。
    下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。

    输出

    输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示BFS的遍历结果。

    示例输入

    1
    6 7 0
    0 3
    0 4
    1 4
    1 5
    2 3
    2 4
    3 5
    

    示例输出

    0 3 4 2 5 1
    
     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<queue>
     5 #include<cstdlib>
     6 
     7 using namespace std;
     8 int map[105][105];
     9 int visited[105];
    10 int mark=1;
    11 int i,root,bian;
    12 
    13 queue<int> q;
    14 
    15 void bfs(int h,int bian)
    16 {
    17     memset(visited,0,sizeof(visited));
    18     q.push(h);
    19     visited[h]=1;
    20     while(!q.empty())
    21     {
    22         int t=q.front();
    23         q.pop();
    24         if(mark)
    25         {
    26             printf("%d",t);
    27             mark=0;
    28         }
    29 
    30         else printf(" %d",t);
    31         for(i=0; i<bian; i++)
    32         {
    33             if(!visited[i]&&map[t][i])
    34             {
    35                 q.push(i);
    36                 visited[i]=1;
    37             }
    38         }
    39     }
    40 }
    41 
    42 int main()
    43 {
    44 
    45     int root,bian,h;
    46     int n,i,j,x,y;
    47     scanf("%d",&n);
    48     for(i=0; i<n; i++)
    49     {
    50         memset(map,0,sizeof(map));
    51         scanf("%d%d%d",&root,&bian,&h);
    52         for(j=0; j<bian; j++)
    53         {
    54             scanf("%d%d",&x,&y);
    55             map[x][y]=map[y][x]=1;
    56         }
    57         bfs(h,bian);
    58         printf("
    ");
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    es6常用语法(持续更新中)
    发送请求时params和data的区别
    js引擎查询 LHS RHS(消化ing)
    Linux常用命令(持续更新)
    Https理解
    MVVM理解
    原生js与jquery区别
    Cookie如何防范XXS攻击
    基于python的appium环境搭建
    pycharm安装步骤
  • 原文地址:https://www.cnblogs.com/wlc297984368/p/3253059.html
Copyright © 2020-2023  润新知