算法学习:图的深度优先遍历(DFS)
图的深度优先遍历
采用邻接矩阵表示图的方法,递归实现。
栈的使用:
头文件:<stack>
s.empty():栈空则返回true,否则返回false
s.top():返回栈顶元素,不删除该元素
s.push():压栈
s.pop():删除栈顶元素,无返回值
使用栈的时候参考了以下文章:
http://blog.csdn.net/zhy_cheng/article/details/8090346
下面是代码:
#include<iostream>
#include<stack>
#define M 11
using namespace std;
int graph[M][M] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0,
0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0,
0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
};int visited[M];//总共有m个点,从第i个点开始遍历
void dfs(int k, int m)
{stack <int> s;s.push(k);visited[k] = 1;while(!s.empty()){int top = s.top();cout << top << endl;s.pop();for(int i = 1;i <= m; i++){if(visited[i]==0 && graph[top][i]){dfs(i,m);}}}
}int main()
{dfs(1,10); return 0;
}
算法学习:图的深度优先遍历(DFS)相关推荐
- 图的深度优先遍历DFS(JAVA)
图的深度优先遍历算法 在此介绍图的基本算法之一的深度优先遍历(DFS)算法 广度优先搜索(BFS). 什么是DFS 图是由节点(Node)和路径(Route)组成的一种数据结构,用于反应各节点间的关系 ...
- 数据结构-图的深度优先遍历(DFS)和广度优先遍历(BFS)算法分析
https://www.cnblogs.com/qzhc/p/10291430.html 最后一个广度优先有错误,H不指向E,只有G指向E,所以顺序应该是ABCFDHGE
- 图的深度优先遍历和广度优先遍历_图的深度优先遍历(DFS)与广度优先遍历(BFS)的c语言实现...
头文件 #pragma warning( disable : 4996)#pragma once#ifndef _GRAPH_H_#define _GRAPH_H_ #define MAX_VERTE ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...
- java数据结构和算法——图的深度优先(DFS)遍历
目录 一.图的遍历介绍 二.图的深度优先搜索(Depth First Search) 三.图的深度优先遍历算法步骤 四.图的深度优先遍历示例需求 五.图的深度优先遍历代码示例 一.图的遍历介绍 所谓图 ...
- 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)
目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...
- 获取图顶点的入度、出度;获取图的两个顶点之间的权值; 图的深度优先算法、图的广度优先遍历
广度优先结果: 深度优先结果: 代码整理: public class Graph {private int vertexSize;//顶点数量private int[] vertexs;//顶点数组p ...
- 图的深度优先遍历和宽度优先遍历C语言,图的广度、深度优先遍历 C语言
以下是老师作为数据结构课的作业的要求,没有什么实际用处和可以探讨和总结的的地方,所以简单代码直接展示. 宽度优先遍历: #include #include #include using namespa ...
- C++实现图的深度优先遍历和广度优先遍历
图的深度和广度优先遍历 图的深度优先遍历 1.算法思想 2.邻接矩阵构造图 3.邻接表构造图 图的广度优先遍历 1.算法思想 2.邻接矩阵构造图 图的深度优先遍历 1.算法思想 (1)从图中的某个初始 ...
最新文章
- 在家搭建大数据分布式计算环境!
- JDBC为什么要使用PreparedStatement而不是Statement
- Spring Boot使用缓存功能
- micropython oled中文_micropython中怎么将gb2312编码的字节流变成中文
- es6箭头函数_javascript-ES6函数进阶(箭头函数,默认参数)(笔记)
- SU数据新旧格式转换问题
- c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵快速转置 数据结构实验报告
- And seeing the whole machine market
- Halcon例程学习:adaption_ocv.hev(光学字符检测)
- 实际运用中DataSet、DataTable、DataRow点滴
- ghost还原提示an internal
- 用python判断素数合数_使用Python判断质数(素数)的简单
- MacOS 系统安装超详细教程
- C语言随机产生26个大写字母
- python excel条件格式_关于python调用Excel“条件格式”——二探openpyxl
- 在学习少儿编程中体会AI乐趣
- DBA系列-推荐书籍(中文版本)
- 关于强化神兽(圣兽)DBC参数详解
- 7-1 树的同构 【已改正】
- 【k8s金牌知识】k8s升级攻略
热门文章
- 我国计算机领域研究的状况文档,计算机应用现状与发展趋势.doc
- 如何向网页中嵌入谷歌英文地图
- 基于矩阵分解的协同过滤算法
- 下载IE6的完整版的‘方法
- 简单工厂SimpleFactory
- C语言位操作详解-4.2.C语言专题第二部分-朱有鹏-专题视频课程
- awx,micaps,hdf,nc,radar,多普勒雷达,grib等各种数据解析,出图,计算等,有需要,欢迎联系.
- 经典升级,长直播 | 第 19 期高级转录组分析和R数据可视化火热报名中!!!...
- 边读边体验《大数据时代》
- TCP、UDP网络编程面试题