#include <iostream>
#include <queue>
#include <algorithm>
#include <stack>
using namespace std;
int a[5][5]={{0,1,0,1,0},{1,0,1,0,1},{0,1,0,1,1},{1,0,1,0,0},{1,0,1,0,0}};
template<int n>
void bfs(int i){
queue<int> q;
bool flag[n];
memset(flag,false,n);
q.push(i);
flag[i]=true;
while(!q.empty()){
int k = q.front();
q.pop();
cout<<k<<" ";
for(int j=0;j<n;j++){
if(a[k][j]&&!flag[j]){
q.push(j);
flag[j]=true;
}
}
}
}
template<int n>
void dfs(int i){
stack<int> s;
bool flag[n];
memset(flag,false,n);
s.push(i);
flag[i]=true;
while(!s.empty()){
int k= s.top();
s.pop();
cout<<k<<" ";
for(int j=0;j<n;j++){
if(a[k][j]&&!flag[j]){
s.push(j);
flag[j]=true;
}
}
}
}
int main(){
bfs<5>(0);
cout<<endl;
dfs<5>(0);
}
分享到:
相关推荐
邻接矩阵存储图的深度优先遍历 邻接矩阵表示图_深度_广度优先遍历
邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历
以文件操作输入邻接矩阵存储的无向图,广度和深度的递归遍历
图的遍历(包括深度 广度遍历 利用邻接矩阵 利用邻接表)
c语言编写的邻接矩阵用深度遍历和广度遍历实现
程序设计任务: 设计一个程序,实现以邻接表或者邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。基本要求:以邻接表或者邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的...
建立图的邻接矩阵或邻接表存储并在此基础上实现图的深度优先遍历和广度优先遍历.doc
邻接矩阵的深度、广度优先遍历,以及插入一个结点
C++实现,数据结构,图的邻接矩阵表示,深度优先遍历,广度优先遍历,DFS,BFS,为什么要五十个字才能上传啊
数据结构类模板无向图邻接矩阵和深度及广度优先搜索遍历
本源文件CPP中代码使用深度优先和广度优先遍历图的算法。
要求采用邻接矩阵作为无向图的存储结构,邻接表作为有向图的存储结构,完成无向图和有向图的建立,并对建立好的图进行深度和广度优先遍历。具体实现要求: 1. 通过键盘输入图的顶点和边信息,分别构造一个无向图的...
NULL 博文链接:https://128kj.iteye.com/blog/1663164
可以用邻接表和邻接矩阵求最短路径 实现图的邻接矩阵和邻接表存储结构;...完成基于邻接矩阵或邻接表的深度优先搜索遍历及广度优先搜索遍历; 实现从键盘输入任意一对顶点,求出顶点间的最短路径。
头歌数据结构图的邻接矩阵存储及遍历操作 第1关图的邻接矩阵存储及求邻接点操作 第2关图的深度优先遍历 第3关图的广度优先遍历 稳过
在邻接矩阵的存储结构下,实现图的深度优先遍历和广度优先遍历。
|利用邻接矩阵创建图 |显示图的邻接矩阵 |求各顶点的度 |插入顶点 |插入弧 |删除顶点 |删除弧 |用邻接矩阵创建邻接表UDG |显示图的邻接表 |深度优先便利序列 |广度优先便利序列 |图的连通分支...
领会图的两种主要存储结构、图基本运算算法和两种遍历算法设计内容:编写一个程序,设计带权图的邻接矩阵与邻接表的创建和输出运算,并在此基础上设计一个主程序完成如下功能:(1)建立如图所示的有向图G的邻接矩阵...
Graph(邻接矩阵)-两种遍历。 (1)建立图的邻接矩阵; (2)对其进行深度优先及广度优先遍历。