算法速成(十四)图之非线性数据结构

今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间 的关系是任意的,而不像树那样

被几个性质定理框住了,元素之间的关系还是比较明显的,图 的使用范围很广的,比如网络爬虫,求最短路径等等,不过大家也不要胆怯,

越是复杂的东西 越能体现我们码农的核心竞争力。

既然要学习图,得要遵守一下图的游戏规则。

一: 概念

图是由“顶点”的集合和“边”的集合组成。记作:G=(V,E);

<1> 无向 图

就是“图”中的边没有方向,那么(V1,V2)这条边自然跟(V2,V1)是等价的,无向图的表 示一般用”圆括号“。

 

<2> 有向图

“图“中的边有方向,自然<V1,V2>这条边跟 <V2,V1>不是等价的,有向图的表示一般用"尖括号"表示。

       

<3> 邻接点

      一条边上的两个顶点叫做 邻接点,比如(V1,V2),(V1,V3),(V1,V5),只是在有向图中有一个“入边,出边“的

概念,比如V3的入边为V5,V3的出边为V2,V1,V4。

<4> 顶点的度

   这个跟“树”中的度的意思一样。不过有向图中也分为“入度”和“出度”两 种,这个相信大家懂的。

<5> 完全图

  每两个顶点都存在一条边,这是一 种完美的表现,自然可以求出边的数量。

 无向图:edges=n(n-1)/2;

 有向 图:edges=n(n-1);           //因为有向图是有边的,所以必须在原来 的基础上"X2"。

时间: 2024-09-06 11:27:43

算法速成(十四)图之非线性数据结构的相关文章

算法速成(四)五大经典查找之线性查找

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的 这些都是查找. 在我们的算法中,有一种叫做线性查找. 分为:顺序查找. 折 半查找. 查找有两种形态: 分为:破坏性查找,   比如有一群mm,我猜她们的 年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了. 哥不找23+ 的,所以此种查找破坏了原来的结构. 非破坏性查找, 这种就反之了,不破坏结构. 顺序查找: 这种非常简单,就是过一下数组,一个一个的比,

算法系列15天速成——第十四天 图【上】

       今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样 被几个性质定理框住了,元素之间的关系还是比较明显的,图的使用范围很广的,比如网络爬虫,求最短路径等等,不过大家也不要胆怯, 越是复杂的东西越能体现我们码农的核心竞争力.               既然要学习图,得要遵守一下图的游戏规则. 一: 概念        图是由"顶点"的集合和"边"的集合组成.记作:G=(V,E): <1

x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()

x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()           宏块编码函数x264_macroblock_encode()是完成变换与量化的主要函数,而x264_macroblock_encode()调用了x264_macroblock_encode_internal()函数,在x264_macroblock_encode_internal()函数中,主要完成了如下功能:   x264_macroblock_encode_skip():编码

算法速成(十)栈

今天跟大家聊聊栈,在程序设计中,栈的使用还是非常广泛的,比如有"括号匹配问题","html 结构匹配问题". 所以说掌握了"栈"的使用,对我们学习算法还是很有帮助的. 一 : 概念 栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有 很多这样的例子, 比如:食堂中的一叠盘子,我们只能从顶端一个一个的取. 二:存 储结构 "栈"不像"队列",需要两个指针来维护,栈

第十四回(一):外战折戟再图雪耻 石路徜徉终是难忘

诗曰: 眼底无常一何闷,懒更经营买笑人. 今夜唯愿<日记>事,德城石上泪痕深. 话说林二分神,终遭哲理偷袭,以致院队晚节不保.害得阿仁,群达几位个得光吐气,干瞪眼.这边哲理卓飞龙一干人等便肆意庆祝,林二实难为情,低头迷迷糊糊不理众人.阿四见卓那狂样,啐了一口,道:"今儿也欺负人起来!下周再干一场."说罢,垂头丧气的踢那草皮.返程途中,林二便也识趣,这一路无话.至书院天全黑了,与阿四阿诸别后.一晚难捱,气一回,恨一回,反复了一夜,到天亮倒落睏了. 蒙眬中,忽想起今日莉莉仍将练

第十四回(二):外战折戟再图雪耻 石路徜徉终是难忘【林大帅作品】

(二)第十四回:外战折戟再图雪耻 石路徜徉终是难忘 单说这第二日课上,林二便被众人嘲笑,都说不该让哲理占了便宜.这功课输人,骑射输人,这蹴球万不可再输.刘鹏,凯宏等都调笑所丢一城,势必林二通敌所致.阿四便道:"非也,此乃阿海乌龙球,"林二并不理会,只看那<体坛>里欧洲战报.不意这"乌龙"二字从此便流传了出来,所熟识的,皆呼此号.林二哭笑不得,只得接受这外号,日后费了半天劲跟莉莉解释这名号.忽见那廊前,一高三学长,与阿仁闲语.林二便知这明日文会内战,当日学

今天不算二十四

问题描述 usingSystem;usingSystem.Collections;usingSystem.Diagnostics;namespaceSixtyFour{///<summary>///Expressionwithfractionsupport///</summary>classExpression{intnumerator,denominator,precedence;stringoper;Expressionopnd1,opnd2;publicExpression(

数据库建表的十四个技巧

数据库建表的十四个技巧 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体.这里的实体可以理解为基本表.明确这种对应关系后,对我们设计录入界面大有好处. [例1]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会关系表.工作简历表.这就是"一张原始单证对应多个实体"的典型

算法速成(九)队列

可能大家都知道,线性表的变种非常非常多,比如今天讲的"队列",灰常有意思啊. 一:概念 队列是一个"先进先出"的线性表,牛X的名字就是"First in First Out(FIFO)", 生活中有很多这样的场景,比如读书的时候去食堂打饭时的"排队".当然我们拒绝插队. 二:存储结构   前几天也说过,线性表有两种"存储结构",① 顺序存储,②链式存储.当然"队列"也脱离 不了这两种服务