深度优先遍历

思想:类似于二叉树的层次遍历,按优先级从高到低进行遍历

下面举一个例子,如下所示

刚开始的链式图从顶点0开始,然后0对应的3,2优先级最高,接下来是顶点3对应的(0,1),接下来是顶点2对应的(0,1,3),注意,已经遍历过的结点我们做好标志,接下来就不再遍历它,最后我们得到结点的排序(0,3,2,1)


相关代码

//类似于层次遍历
//将该个结点对应行的数据存入有前后指针的一个数组中,接下来依次按照结点顺序进行遍历,按此规则直到所有的结点都被遍历完全。
int visit[max];//标志结点是否经过访问
int story[max];//按优先级先后存储结点
void all(ag a,int v)
{int fre=0,end=0;//分别指向story[max]的末端位置,以及将要访问的结点位置。story[fre]=v;while(pre<=end){v=story[end++];*p=a.first[v];while(p!=null){if(visit[p->r]==0){story[++fre]=p->r;visit(p->r);visit[p->r]=1;}p=p->next;}}
}

谢谢大家

简洁明了的深度优先遍历算法相关推荐

  1. 深度优先遍历算法-01小偷偷东西问题

    小偷偷东西问题 前言 深度优先遍历是经典的图论算法,深度优先遍历算法的搜索逻辑和它的名字一样,只要有可能,就尽量深入搜索,直到找到答案,或者尝试了所有可能后确定没有解. 简单来说,深度优先遍历就是按照 ...

  2. 带父节点的平衡二叉树_Python算法系列—深度优先遍历算法【二叉树】

    一.什么是深度优先遍历 深度优先遍历算法是经典的图论算法.从某个节点v出发开始进行搜索.不断搜索直到该节点所有的边都被遍历完,当节点v所有的边都被遍历完以后,深度优先遍历算法则需要回溯到v以前驱节点来 ...

  3. 图的遍历(搜索)算法 之 深度优先遍历算法

    图的遍历的定义: 从图中的某个顶点出发访问遍图中的所有顶点,并且每个顶点仅仅被访问一次. 图的遍历算法我们常见的而且用的最多的就有两种:其一是图的深度优先遍历算法:其二是图的广度优先遍历算法.这里我们 ...

  4. Python算法系列—深度优先遍历算法【二叉树】

    深度优先遍历算法之二叉树 一.什么是深度优先遍历 二.二叉树 1. 二叉树简介 2.二叉树类型 3.二叉树相关术语 4. 二叉树的节点代码 5. 二叉树遍历顺序 6.深度优先遍历和广度优先遍历 三.面 ...

  5. rapidio 网络枚举--深度优先遍历算法

    根据 RapidIO 协议规范在 RapidIO 路由网络拓扑结构中,一般采用深度优先遍历 的枚举算法,因为广度优先遍历算法空间复杂度大,在规模较大的 RapidIO 网络中容易找 不到最优路径. R ...

  6. 深度优先遍历算法-03二叉树路径遍历问题

    二叉树路径遍历 简述 比较基础的一个DFS的题目,但是确实很多难题的模板.LeetCode很多二叉树的题本质上就是这个路径遍历. 本题为了输出路径,使用DFS的经典结构栈完成. 问题描述 给定一个二叉 ...

  7. 417. 太平洋大西洋水流问题(medium) -力扣(leetCode)逆流而上,JS图的深度优先遍历算法

    ⚡️417. 太平洋大西洋水流问题⚡️ 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处 ...

  8. 深度优先遍历算法-02最大岛屿问题

    最大的岛屿 简介 比较常见的棋盘类型的DFS问题. 问题描述 给定一个二维矩阵,其中0代表海洋,1代表陆地(相邻的1连接形成岛屿),现在要求找到最大岛屿面积. 是不是有一种LeetCode的既视感. ...

  9. 关于深度优先遍历算法-c++语言

    深度优先遍历及例题加讲解 竞赛里面重要算法,全当学习笔记啦.(如有不足多多谅解) 零.什么是深度优先遍历 深度优先遍历简称DFS(Depth First Search). 我们简单的举个栗子: 从前有 ...

  10. educoder数据结构与算法 图 第2关:实现图的深度优先遍历

    任务描述 本关任务:实现 graph.cpp 里的函数int Graph_DepthFirst(Graph*g, int start, Edge* tree). 注意遵守约定:编号大的先进栈. 相关知 ...

最新文章

  1. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?
  2. 【c_prime_plus】第十七章笔记
  3. oracle中rac是什么意思,Oracle中HA、RAC、Datagurad区别
  4. Type of data in energy dashboard
  5. GitHub删除已有文件和提交文件的方法
  6. 最通俗易懂的YOLOv3原理及代码解析
  7. TCP/IP入门(1) --链路层
  8. Failed to maintain projects LRU cache for dir *********
  9. 欧拉函数、欧拉定理、费马小定理(附例题)
  10. Python利用GUI界面制作B站弹幕分析工具
  11. c++ 工厂模式简介和应用场景
  12. 停用Windows Defender Antivirus Service内存
  13. cad怎么设置线的粗细_AUTOCAD中如何设置线宽
  14. PC控制台使用-素材管理
  15. 网络攻防技术(郑大信安个人总结版)
  16. 博客园样式(仿简书)
  17. 【快速简单登录认证】SpringBoot使用Sa-Token-Quick-Login插件快速登录认证
  18. MarkDown编辑器 - MarkText使用文档
  19. Consumer接口和Supplier接口
  20. iOS UIColor RGB 颜色对照表

热门文章

  1. mysql操作基础知识
  2. 竞品分析:腾讯课堂vs中国大学MOOC(从用户体验五要素角度)
  3. 12省微生物繁殖,for循环模拟,12省,古堡算式全排列,12省鲁卡斯队列黄金比例比较,double精度12省填空题猜生日枚举,12省填空题土地测量,double12省填空题巧排扑克牌,12省汉诺塔
  4. 《岭南东见何君》——【古诗文复兴——故友重逢】
  5. 微信 心理测试 软件,敢不敢做一份微信版心理测试?
  6. CVPR2019 | 论文分类汇总(190611 更新)
  7. [ CSS-CSS3 ] 更适合你的CSS样式一览表
  8. SpaceSyntax【空间句法】之DepthMapX学习:第二篇 输出了什么东西 与 核心概念
  9. 复盘:霍夫曼编码平均长度计算方式,信源符号a1-a6概率为:0.1,0.4,0.06,0.1,0.04,0.3,霍夫曼编码平均长度是
  10. matlab反激变换器仿真模型,基于MATLAB的反激变换器分析与设计-毕业设计.docx