图的遍历算法【数据结构F】

图的遍历算法有哪两种?
深度优先调度算法---------将图结构看成是树形结构,树形结构的子图直接是没有交叉的,但是对于图结构的树形结构之间是有交叉的,类比于树形结构的二叉树,左指数和右指数都会相应的经历三次,为了区分我们加了标志变量,我们需要给每一个顶点都加一个标志变量,这个变量的作用就是为了描述此顶点是否已经被访问过,如果这个点被访问的了,而且之前没有被访问过,那么我们就开始进行访问,否则我们不访问,对于图形结构来说,每个顶点被经过的次数是不确定的,在这里插入图片描述在这里插入图片描述广度优先调度算法,在这里插入图片描述在这里插入图片描述接下来我们在纸上画一个空的队列,描述一些队列的基本操作,队列里数据的变化过程,来看一下是如何进行遍历操作的,根据队列的遍历过程我们来了解深度算法的过程队列是有一些基本操作的,比如说进入队列和出队列,对于广度优先搜索,我们先要选一个节点,访问结束之后将标志位写为1,首先我们讲第1个节点进队列,标志位置一,然后出队列,后面的数据根据大小关系依次进入队列,然后标志位改为1,然后出队列,最后一步一步的进行执行就是可以的了
注意一点就是在出队列的时候我们将与节点相连的节点依次的入队列
出队列就是判断是否联系
广度优先算法的后一级中的所有元素哪一个被先访问是根据前一级进行判断的
也可以认为这是借助队列的原因导致的在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最小生成树【数据结构】

前提 【1】网的最小生成树,涉及到生成树了那么就会有最小的权值在里面了 【2】对于一个图来说生成树是由多个的,并不是唯一的 【3】:广度优先算法的遍历是可以得到生成树的,深度优先算法也是可以得到生成树的 任意的一个联通网&am…

广义表的基本概念【数据结构】

实名广义表与匿名广义表的区别:对于匿名的广义表的表示方法我们认为一对括号就是一个广义表,里面的数据可以是广义表也可以是 原子,对于有名字的广义表,也就是大写的字母我们可以直接认为大写的就是广义表的表示方法小练习----广义…

树和二叉树【数据结构】

基本概念 ADT的定义 基本操作 对比树形结构和线性结构 基本术语以及注意事项-不能错误简单的我以为 二叉树是度数小于等于2的树,而不是度为2的树,一定要记住这个概念 小知识:二进制转换成为十进制的方法名称叫做位权求和法,用到…

数据库2.1.1mysql的特点

在mysql5.1当中,mysqlab公司引入了新的插件式存储引擎体系结构,也许将存储引擎加载到正在运行的mysql服务器当中,使用mysql插件是存储引擎体系结构允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用…

MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇

一 MyISAM 1.1 MyISAM简介 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,而且提供了大量的特性&a…

互联网30年,泡沫如梦

人人都说互联网改变世界,这话没错。 但我认为互联网改变的方式,是泡沫。 资金,资源,人才因为一堆概念聚在一起,形成一个又一个的泡沫,然后泡沫破裂,大部分人失败,少数能够留下来的&a…

cpp知识汇总(1) 指针vs引用、static、const

引用和指针的区别? 指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(…

《三天给你聊清楚redis》第1天先唠唠redis是个啥(18629字)

后端需要知道的关于redis的事,基本都在这里了。 此文后续会改为粉丝可见,所以喜欢的请提前关注。 你的点赞和评论是我创作的最大动力,谢谢。 1、入门 Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:…

使用github+jsdelivr作为视频床

感谢JefferyIF大佬提供的神奇方法。 1. 配置FFmpeg 注:IOS因为不支持HLS,所以对IOS上无法正常播放视频,其他端都可以正常播放。 因为脚本要使用到FFmeg对源视频文件切分成m3u8格式,所以在使用脚本之前,请配置好 FFm…

使用PicGo+github+jsdelivr作为图床

1.什么是图床? 所谓图床工具,就是自动把本地图片转换成链接的一款工具,网络上有很多图床工具,就目前使用种类而言,PicGo 算得上一款比较优秀的图床工具。它是一款用 Electron-vue 开发的软件,可以支持微博…

万字干货:教新手从0到1搭建完整的增长数据体系

在实际的业务中,大多数人可能只会遇到以下一种或几种常见的场景,并且对于各个细分场景,所需要解决的问题和关注重点都是不一样的。 场景一:你刚加入一个成熟产品的用户增长部门,会发现业务当前有非常全面详实的用户和业…

《三天给你聊清楚redis》第2天看看redis怎么被搞出来的(22036字)

后端需要知道的关于redis的事,基本都在这里了。 此文后续会改为粉丝可见,所以喜欢的请提前关注。 你的点赞和评论是我创作的最大动力,谢谢。 3、单机实现 3.1、数据库概述 redis服务器将所有数据库都保存在redis/redisServer中&#xff…

leetcode559. N叉树的最大深度

给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 说明: 树的深度不会超过 1000。 树的节点总不会超过 5000。 思路见代码 /* // De…

SpringMVC+Spring3.2+Hibernate4整合实例

近日抽时间学习了一下SpringMVC,总体感觉还不错,相对于Struts2来说,感觉SpringMVC更加的灵活,由于现在很多公司都在用SpringMVC,所以也学习一下,希望接下来的项目可以使用,闲话不说了&#xff0…

《剑指offer》全解(图文结合,通俗易懂,一篇看爽)

3. 数组中重复的数字 题目链接 牛客网 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 Input: {2, 3, 1, 0…

《不改变的CSDN,没有未来》,前50的专家实名发文

三十年河东,三十年河西,这句话在互联网战场上,应该改为十年。很多上个时代的王,掉队了。 CSDN的历史和中国互联网产品的发展历史有一点像,更确切的说,是和某些互联网企业更像。历史歪歪斜斜的写着几个字&am…

Redis 多线程网络模型全面揭秘

导语 一文带你完全吃透 Redis 整个核心网络模型的原理和源码。 目录 导言 Redis 有多快? Redis 为什么快? Redis 为何选择单线程? 避免过多的上下文切换开销 避免同步机制的开销 简单可维护 Redis 真的是单线程? 单线程事…

leetcode867. 转置矩阵

给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示…

正则表达式必知必会

一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。 正则表达式在线工具 二、匹配单个字符 . 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符&a…

leetcode设计链表,非常工整的实现你值得拥有

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所…