这里是基于邻接表的,有向的,具体代码如下:

#include <iostream>
#include <list>using namespace std;class Graph
{int V;list<int> *adj;
public:Graph(int V);void addEdge(int v, int w);void BFS(int s);
};Graph::Graph(int V)
{this->V = V;adj = new list<int>[V];
}void Graph::addEdge(int v, int w)
{adj[v].push_back(w);
}void Graph::BFS(int s)
{bool *visited = new bool[V];for (int i = 0; i < V; i++)visited[i] = false;list<int> queue;visited[s] = true;queue.push_back(s);list<int>::iterator i;while (!queue.empty()){s = queue.front();cout << s << " ";queue.pop_front();for (i = adj[s].begin(); i != adj[s].end(); ++i){if (!visited[*i]){visited[*i] = true;queue.push_back(*i);}}}
}int main()
{Graph g(4);g.addEdge(0, 1);g.addEdge(1, 2);g.addEdge(0, 3);cout << "Following is Breadth First Traversal " << endl;g.BFS(0);getchar();return 0;
}

程序运行截图如下:

这里的g.BFS(0);代表,从0这个顶点开始。

邻接表是这样的:

C++笔记-基于邻接表的BFS(宽度优先遍历)相关推荐

  1. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...

  2. 数据结构---邻接表的BFS

    数据结构-邻接表的BFS 原理:参考趣学数据结构 代码: 队列代码: #pragma once #define elemType int #define N 100 #include<stdli ...

  3. 数据结构实验之图论二:基于邻接表的广度优先搜索遍历

    题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点的同层邻接点,节点编号小的优先遍历) 输入 输入第一行为整数n(0< ...

  4. 4005基于邻接表的顶点的删除(C++,附思路)

    描述 给定一个无向图,在此无向图中删除一个顶点. 输入 多组数据,每组m+2行.第一行有两个数字n和m,代表有n个顶点和m条边.顶点编号为1到n.第二行到第m+1行每行有两个数字h和k,代表边依附的两 ...

  5. 【 第11关:基于邻接表的深度优先遍历】【编程题实训-图】【头歌】【bjfu-282】

    任务描述 一个连通图采用邻接表作为存储结构.设计一个算法,实现从顶点v出发的深度优先遍历的非递归过程. 编程要求 输入 多组数据,每组m+2数据行.第一行有两个数字n和m,代表有n个顶点和m条边.顶点 ...

  6. 4014基于邻接表的长度为k的简单路径的求解

    描述 一个连通图采用邻接表作为存储结构.设计一个算法,判断无向图中任意给定的两点是否存在一条长度为k的简单路径. 输入 多组数据,每组m+3数据行.第一行有两个数字n,m和k,代表有n个顶点,m条边和 ...

  7. 邻接表存储图的广度优先遍历

    试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储 ...

  8. 【BFS宽度优先搜索】

    一.求所有顶点到s顶点的最小步数   1 //BFS宽度优先搜索 2 #include<iostream> 3 using namespace std; 4 #include<que ...

  9. 迷宫算法总结(最短路径)BFS宽度优先

    使用bfs宽度优先. 根据 leetCode的单词搜索题https://leetcode-cn.com/problems/word-search/得到思路. class Solution {publi ...

最新文章

  1. 刘宇凡:数字让切糕与电商溅起涟漪
  2. 一个网站让你系统的入门脑机接口和神经科学
  3. Python3 调用ffmpeg
  4. 邮件服务器收发邮件时常发生的问题
  5. MongoDB 与传统数据库的对比
  6. XCode 快捷键, MAC 快捷键
  7. 关于解决工作中的自动化环境搭建的解决方案(序)
  8. python需要的开发特点_Python编程语言特征
  9. Vant中List组件immediate-check=false无效
  10. 破解版的ABBYY FineReader OCR文字识别软件,真的好用吗?
  11. 上位机与下位机进行交互
  12. ubuntu安装后的一些操作
  13. visio绘制流程图连接线总拐弯
  14. 产品经理快(ku)乐(bi)的一天~
  15. c++11 日期和时间工具(std::chrono::duration)(一)
  16. 系统大作业. 多酶级联反应酶配比及投料优化(1)
  17. 网站被攻击如何查找木马文件 以及攻击者IP
  18. python 字符串结束符_python字符串以反斜杠结尾
  19. 益聚星荣:网易有道、沪江小D等词典错误频现 莫让词典类APP误人子弟
  20. 大牛建议——C++学习建议

热门文章

  1. Mysql Packet for query is too large解决方法
  2. 微博feed系统的push和pull模式和时间分区拉模式架构探讨
  3. 卡巴斯基将支持微软企业安全解决方案Forefront
  4. 数字化转型时代,企业管理者应该如何培养数据化管理思维?
  5. 可视化实战!Python+BI,手把手教你做炫酷的NBA可视化分析
  6. 7个理由,给你推荐这款“秒杀Excel”的分析神器!
  7. AMD桌面处理器Roadmap也已泄露
  8. 从系统中取得指定资源图像(转载)
  9. 在VC中动态加载ODBC的方法
  10. 因代码不规范,码农枪击了4名同事!