图的深度优先遍历

采用邻接矩阵表示图的方法,递归实现。
栈的使用:

头文件:<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)相关推荐

  1. 图的深度优先遍历DFS(JAVA)

    图的深度优先遍历算法 在此介绍图的基本算法之一的深度优先遍历(DFS)算法 广度优先搜索(BFS). 什么是DFS 图是由节点(Node)和路径(Route)组成的一种数据结构,用于反应各节点间的关系 ...

  2. 数据结构-图的深度优先遍历(DFS)和广度优先遍历(BFS)算法分析

    https://www.cnblogs.com/qzhc/p/10291430.html 最后一个广度优先有错误,H不指向E,只有G指向E,所以顺序应该是ABCFDHGE

  3. 图的深度优先遍历和广度优先遍历_图的深度优先遍历(DFS)与广度优先遍历(BFS)的c语言实现...

    头文件 #pragma warning( disable : 4996)#pragma once#ifndef _GRAPH_H_#define _GRAPH_H_ #define MAX_VERTE ...

  4. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...

    图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...

  5. java数据结构和算法——图的深度优先(DFS)遍历

    目录 一.图的遍历介绍 二.图的深度优先搜索(Depth First Search) 三.图的深度优先遍历算法步骤 四.图的深度优先遍历示例需求 五.图的深度优先遍历代码示例 一.图的遍历介绍 所谓图 ...

  6. 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)

    目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...

  7. 获取图顶点的入度、出度;获取图的两个顶点之间的权值; 图的深度优先算法、图的广度优先遍历

    广度优先结果: 深度优先结果: 代码整理: public class Graph {private int vertexSize;//顶点数量private int[] vertexs;//顶点数组p ...

  8. 图的深度优先遍历和宽度优先遍历C语言,图的广度、深度优先遍历 C语言

    以下是老师作为数据结构课的作业的要求,没有什么实际用处和可以探讨和总结的的地方,所以简单代码直接展示. 宽度优先遍历: #include #include #include using namespa ...

  9. C++实现图的深度优先遍历和广度优先遍历

    图的深度和广度优先遍历 图的深度优先遍历 1.算法思想 2.邻接矩阵构造图 3.邻接表构造图 图的广度优先遍历 1.算法思想 2.邻接矩阵构造图 图的深度优先遍历 1.算法思想 (1)从图中的某个初始 ...

最新文章

  1. 在家搭建大数据分布式计算环境!
  2. JDBC为什么要使用PreparedStatement而不是Statement
  3. Spring Boot使用缓存功能
  4. micropython oled中文_micropython中怎么将gb2312编码的字节流变成中文
  5. es6箭头函数_javascript-ES6函数进阶(箭头函数,默认参数)(笔记)
  6. SU数据新旧格式转换问题
  7. c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵快速转置 数据结构实验报告
  8. And seeing the whole machine market
  9. Halcon例程学习:adaption_ocv.hev(光学字符检测)
  10. 实际运用中DataSet、DataTable、DataRow点滴
  11. ghost还原提示an internal
  12. 用python判断素数合数_使用Python判断质数(素数)的简单
  13. MacOS 系统安装超详细教程
  14. C语言随机产生26个大写字母
  15. python excel条件格式_关于python调用Excel“条件格式”——二探openpyxl
  16. 在学习少儿编程中体会AI乐趣
  17. DBA系列-推荐书籍(中文版本)
  18. 关于强化神兽(圣兽)DBC参数详解
  19. 7-1 树的同构 【已改正】
  20. 【k8s金牌知识】k8s升级攻略

热门文章

  1. 我国计算机领域研究的状况文档,计算机应用现状与发展趋势.doc
  2. 如何向网页中嵌入谷歌英文地图
  3. 基于矩阵分解的协同过滤算法
  4. 下载IE6的完整版的‘方法
  5. 简单工厂SimpleFactory
  6. C语言位操作详解-4.2.C语言专题第二部分-朱有鹏-专题视频课程
  7. awx,micaps,hdf,nc,radar,多普勒雷达,grib等各种数据解析,出图,计算等,有需要,欢迎联系.
  8. 经典升级,长直播 | 第 19 期高级转录组分析和R数据可视化火热报名中!!!...
  9. 边读边体验《大数据时代》
  10. TCP、UDP网络编程面试题