zoukankan      html  css  js  c++  java
  • 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    题目描述

    给定一个无向连通图,顶点编号从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<queue>
     2 #include<vector>
     3 #include<stdio.h>
     4 #include<string.h>
     5 using namespace std;
     6 priority_queue<int, vector<int>, greater<int> >head[100];
     7 queue<int>q;
     8 bool vis[110];
     9 int flag;
    10 void bfs()
    11 {
    12     while(!q.empty())
    13     {
    14         int cur = q.front();
    15         q.pop();
    16         if(flag == 0)
    17         {
    18             printf("%d",cur);
    19             flag = 1;
    20         }
    21         else printf(" %d",cur);
    22         while(!head[cur].empty())
    23         {
    24             int tmp = head[cur].top();
    25             if(!vis[tmp])
    26             {
    27                 q.push(tmp);
    28                 vis[tmp] = 1;
    29             }
    30             head[cur].pop();
    31         }
    32     }
    33     printf("
    ");
    34 }
    35 
    36 int main()
    37 {
    38     int t, n, m, k, u, v;
    39     scanf("%d", &t);
    40     while(t--)
    41     {
    42         scanf("%d %d %d", &n, &m, &k);
    43         memset(vis, 0, sizeof(vis));
    44         for(int i = 0; i < n; i++)
    45             while(!head[i].empty())
    46                 head[i].pop();
    47         while(m--)
    48         {
    49             scanf("%d %d", &u, &v);
    50             head[u].push(v);
    51             head[v].push(u);
    52         }
    53         while(!q.empty())q.pop();
    54         q.push(k);
    55         vis[k] = 1;
    56         flag = 0;
    57         bfs();
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    数据结构13——博弈论SG函数
    数据结构12——最近公共祖先
    数据结构11——双联通
    mui
    rem
    关于apicloud图片缓存
    apicloud代码压缩和全局加密
    数据库设计
    common常用到的类
    RSA生成、加密、解密、签名。
  • 原文地址:https://www.cnblogs.com/LK1994/p/3162662.html
Copyright © 2011-2022 走看看