深度优先搜索类似于树的先序遍历
 ·首先访问起始顶点v;·接着由v出发访问v的任意一个邻接且未被访问的邻接顶点w,;·然后再访问与w,邻接且未被访问的任意顶点yi;·若w,没有邻接且未被访问的顶点时,退回到它的上一层顶点v;·重复上述过程,直到所有顶点被访问为止。
bool visited[MAX_TREE_SIZE];
void DFSTraverse(Graph G){for(int i=0 ;i<G.vexnum;++i)visited[i]=FALSE;for(int i=0;i<G.vexnum;++i)if( !visited[i])DES(G, i);
}
void DFS(Graph G,int v) {visit(v);visited[v]=TRUE;for(w=FirstNeighbor(G,v); W>=0; w=NextNeighbor(G,v,w))if(!visited[w])DES(G, w);
}


深度优先生成树
在深度遍历过程中,我们可以得到一棵遍历树,称为深度优先生成树(生成森林)。

邻接矩阵法的深度优先生成树唯一,邻接表法的不唯一
遍历与连通性问题
在无向图当中,在任意结点出发进行一次遍历(调用一次BFS或DFS),若能访问全部结点,说明该无向图是连通的。
在无向图中,调用遍历函数(BFS或DFS)的次数为连通分量的个数。
【关注微信公众号一起来交流】

·

数据结构考研笔记(二十) ——深度优先搜索相关推荐

  1. 数据结构考研笔记(十八) ——图的基本操作

    本章将介绍数据结构常用的几个图的操作 每个操作的函数都附图说明. 项目 Value Adjacent(G,x,y) 判断图G是否存在边<x, y>或(x,y) Neighbors(G,x) ...

  2. 数据结构考研笔记(十五)——图的存储结构邻接矩阵、邻接表、十字链表、临界多重表的概念

    图的存储结构 1.邻接矩阵 1.1有向图 1.2无向图 2.邻接表法 2.1有向图边表 2.2无向图边表 3.十字链表 4.临界多重表 十字链表与临界多重表 1.邻接矩阵 邻接矩阵法结点数为n的图G ...

  3. Mr.J-- jQuery学习笔记(二十八)--DOM操作方法(添加方法总结)

    Table of Contents appendTo appendTo(source, target) 源代码 append prependTo ​ ​ ​ ​ prependTo源码 prepend ...

  4. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言

    嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...

  5. 数据结构自学笔记二、栈

    数据结构自学笔记二.栈 栈的定义 栈的作用 栈的顺序存储与随机存储 栈的基本功能的实现 先以顺序存储结构的栈为例. 然后再说说随机存储结构的栈吧 两栈共享空间 栈的一个重要应用--四则运算 算式的后缀 ...

  6. python rot13解密_codewars(python)练习笔记二十:ROT13解密

    codewars(python)练习笔记二十:ROT13解密 题目 How can you tell an extrovert from an introvert at NSA? Va gur ryr ...

  7. 嵌入式Linux驱动笔记(二十四)------framebuffer之使用spi-tft屏幕(上)

    你好!这里是风筝的博客, 欢迎和我一起交流. 最近入手了一块spi接口的tft彩屏,想着在我的h3板子上使用framebuffer驱动起来. 我们知道: Linux抽象出FrameBuffer这个设备 ...

  8. uniapp 学习笔记二十二 购物车页面结构搭建

    uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...

  9. Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用

    Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...

最新文章

  1. 【论文解读】EfficientNet强在哪里
  2. 【C++】Visual Studio教程(三) - 项目和解决方案
  3. 棋牌游戏服务器架构: 详细设计(二) 应用层设计
  4. 工业交换机厂家,工业交换机品牌前十大排名
  5. Educational Codeforces Round 104 (Rated for Div. 2)A~E解题报告
  6. C++的hashmap和Java的hashmap
  7. 2010中小网站运营报告:社区论坛网站后来居上
  8. 支持统一码 10 的花园明朝字库终于更新出来了
  9. 关于iOS 阴历阳历转化的那些事儿
  10. sqlite查询空日期类型_sqlite数据类型(时间 日期 ) timestamp 使用
  11. 138529-46-1,Biotin-PEG2-amine可在EDC或HATU存在下与NHS酯或羧酸反应试剂
  12. C#Assembly详解
  13. Beosin(成都链安)预警:黑客攻击EOS竞猜类游戏 已获利数百EOS
  14. 运筹学——运输问题数学模型
  15. Android10.0(Q) 默认应用设置(电话、短信、浏览器、主屏幕应用)
  16. 2004全国城市GDP排名(前40名)
  17. BAT等互联网公司的薪酬结构
  18. 数据分析--对“数据分析”相关岗位的综合分析
  19. 多重影分身(c++题解)
  20. 析构函数和this指针

热门文章

  1. 2021最全数学建模必备资料
  2. C++ Direct2D绘图、winapi创建窗口初探
  3. 移动架构-图片加载框架设计
  4. 【Vue】Vue 项目前端响应式布局及框架搭建
  5. 《画解数据结构》「归并排序」算法教程
  6. 技嘉固件组件可被滥用为后门,影响700万台设备,易触发供应链攻击
  7. 2020.2.19GDUT寒假训练排位赛1-B
  8. Oracle表的分区update卡着,分区表分区字段的update操作
  9. 手机通讯录联系人恢复?没有备份的你需要知道
  10. FA:萤火虫算法的测试及Python实现