题目

给定一个图,使用栈对其进行深度优先遍历

代码

public static void dfs(Node node) {if (node == null) {return;}Stack<Node> stack = new Stack<>();HashSet<Node> set = new HashSet<>();stack.add(node);set.add(node);System.out.println(node.value);while (!stack.isEmpty()) {Node cur = stack.pop();for (Node next : cur.nexts) {if (!set.contains(next)) {stack.push(cur);stack.push(next);set.add(next);System.out.println(next.value);break;}}}
}
public class Node {public int value;public int in;public int out;public ArrayList<Node> nexts;public ArrayList<Edge> edges;public Node(int value) {this.value = value;in = 0;out = 0;nexts = new ArrayList<>();edges = new ArrayList<>();}
}

有苦有乐的算法 --- 图的深度优先遍历相关推荐

  1. 有苦有乐的算法 --- 图的宽度优先遍历

    题目 给定一个图,使用队列对其进行宽度优先遍历 代码 public static void bfs(Node start) {if (start == null) {return;}Queue< ...

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

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

  3. 【算法学习】图相关算法编程实现-深度优先遍历和广度优先遍历

    一.图的表示 图G=(V,E).要表示一个图,通常有两种方法:邻接表和邻接矩阵.两种方法都既可以表示有向图,也可以表示无向图. 邻接表表示由一个包含|V|个列表的数组组成,其中每个列表对应V中的一个顶 ...

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

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

  5. 算法学习:图的深度优先遍历(DFS)

    图的深度优先遍历 采用邻接矩阵表示图的方法,递归实现. 栈的使用: 头文件:<stack> s.empty():栈空则返回true,否则返回false s.top():返回栈顶元素,不删除 ...

  6. 广度优先搜索生成树怎么画_图的深度优先遍历与广度优先遍历以及最小生成树...

    图的深度优先遍历 题目:写出附从每个顶点出发的一次深度优先搜索遍历序列.在纸上画出遍历过程和序列,提交截图. 错误回答 从A点开始遍历:0124-01324-0134-0324-034 从B点开始遍历 ...

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

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

  8. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索

    线性存储元素时,元素的关系也同时确定了.而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的关系. 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位 ...

  9. 超详细C语言版数据结构:图的深度优先遍历(推荐收藏)

    文章目录 一.邻接矩阵存储图的深度优先遍历过程分析 二.结果分析 三.C语言编程实现图的深度优先遍历 四.图的遍历及其应用 一.邻接矩阵存储图的深度优先遍历过程分析 对图1这样的无向图,要写成邻接矩阵 ...

最新文章

  1. 深度丨解密Python为什么能够风靡全宇宙
  2. UVa 164 - String Computer
  3. [概统]本科二年级 概率论与数理统计 第五讲 二元随机变量
  4. 富文本编辑器中空格转化为a_如何对富文本编辑器(FCK Html Editor)的工具栏进行扩展?...
  5. 配置IISExpress允许外部访问
  6. 趣谈设计模式 | 工厂模式(Factory):利用工厂来创建对象
  7. c++没有终结符的多行输入如何停止_如何使用iloc和loc 对Pandas Dataframe进行索引和切片...
  8. Shell脚本——变量
  9. 达成这个目标的数据分析师,在大厂HR眼里最新鲜吃香
  10. 创建一个简单的数据库
  11. oracle 审计变换表空间_Oracle审计日志和审计策略数据表迁移到新表空间
  12. 更改Android 默认键盘映射值
  13. 《人工智能狂潮》读后感——什么是人工智能?(一)
  14. Dell IDRAC服务器重装系统详解(远程连接)
  15. 华为HCIP-DATACOM(821)411-440
  16. requests的Proxy-SSL错误
  17. EAX、ESP、EBP等寄存器的作用
  18. Xiaojie雷达之路---速度解模糊
  19. Java练习——牛客网天才问题
  20. 基因xii_在Hack Week XII上运行创意

热门文章

  1. php nobody,linux – 运行FastCGI / PHP-FPM(作为用户“nobody”)在PHP Sessions文件夹上设置什么权限/所有权?...
  2. 使用python-aiohttp搭建微信公众平台
  3. 2022 水花走向哪里?中概 / 恒生 / 投顾 / 中证 500 / 传媒?
  4. 疫情期间“在家学”,视界云全面升级在线教育云服务解决方案
  5. LittleFS移植实践
  6. 使用yolov3训练识别围棋死活题和围棋局面
  7. 他开发了一款PSVR北美欧洲销量最好的中国游戏,秘诀只有两个字
  8. 内置函数 - getattr()函数
  9. 兄弟连新版ThinkPHP视频教程
  10. M5683T OLT--HGU ONU配置指导(Port映射方式)