C++笔记-基于邻接表的BFS(宽度优先遍历)
这里是基于邻接表的,有向的,具体代码如下:
#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(宽度优先遍历)相关推荐
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript ...
- 数据结构---邻接表的BFS
数据结构-邻接表的BFS 原理:参考趣学数据结构 代码: 队列代码: #pragma once #define elemType int #define N 100 #include<stdli ...
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点的同层邻接点,节点编号小的优先遍历) 输入 输入第一行为整数n(0< ...
- 4005基于邻接表的顶点的删除(C++,附思路)
描述 给定一个无向图,在此无向图中删除一个顶点. 输入 多组数据,每组m+2行.第一行有两个数字n和m,代表有n个顶点和m条边.顶点编号为1到n.第二行到第m+1行每行有两个数字h和k,代表边依附的两 ...
- 【 第11关:基于邻接表的深度优先遍历】【编程题实训-图】【头歌】【bjfu-282】
任务描述 一个连通图采用邻接表作为存储结构.设计一个算法,实现从顶点v出发的深度优先遍历的非递归过程. 编程要求 输入 多组数据,每组m+2数据行.第一行有两个数字n和m,代表有n个顶点和m条边.顶点 ...
- 4014基于邻接表的长度为k的简单路径的求解
描述 一个连通图采用邻接表作为存储结构.设计一个算法,判断无向图中任意给定的两点是否存在一条长度为k的简单路径. 输入 多组数据,每组m+3数据行.第一行有两个数字n,m和k,代表有n个顶点,m条边和 ...
- 邻接表存储图的广度优先遍历
试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储 ...
- 【BFS宽度优先搜索】
一.求所有顶点到s顶点的最小步数 1 //BFS宽度优先搜索 2 #include<iostream> 3 using namespace std; 4 #include<que ...
- 迷宫算法总结(最短路径)BFS宽度优先
使用bfs宽度优先. 根据 leetCode的单词搜索题https://leetcode-cn.com/problems/word-search/得到思路. class Solution {publi ...
最新文章
- 刘宇凡:数字让切糕与电商溅起涟漪
- 一个网站让你系统的入门脑机接口和神经科学
- Python3 调用ffmpeg
- 邮件服务器收发邮件时常发生的问题
- MongoDB 与传统数据库的对比
- XCode 快捷键, MAC 快捷键
- 关于解决工作中的自动化环境搭建的解决方案(序)
- python需要的开发特点_Python编程语言特征
- Vant中List组件immediate-check=false无效
- 破解版的ABBYY FineReader OCR文字识别软件,真的好用吗?
- 上位机与下位机进行交互
- ubuntu安装后的一些操作
- visio绘制流程图连接线总拐弯
- 产品经理快(ku)乐(bi)的一天~
- c++11 日期和时间工具(std::chrono::duration)(一)
- 系统大作业. 多酶级联反应酶配比及投料优化(1)
- 网站被攻击如何查找木马文件 以及攻击者IP
- python 字符串结束符_python字符串以反斜杠结尾
- 益聚星荣:网易有道、沪江小D等词典错误频现 莫让词典类APP误人子弟
- 大牛建议——C++学习建议