判别无向图g中指定的两个顶点之间是否存在一条长度为k的简单路径_和大家唠唠关于图的基础知识(一)...

本文介绍了图的基本概念,包括无向图、顶点、边、权重、完全图、有向无环图(DAG)、连通图和稠密图等。讨论了如何判断两个顶点间是否存在长度为k的简单路径,并指出图在数据结构中的重要性。
摘要由CSDN通过智能技术生成

7712a0ee47315836c7cba61efb38dfc4.gif

8b27bff225116d56e25ee0de417c661f.png

今天是小浩算法 “365刷题计划” 第99天。和大家聊聊关于图的一些知识。

01PART图是什么 4ba8a2041968ccc96d06a4baab38929d.png

图(Graph)是表示物件与物件之间的关系的数学对象,是图论的基本研究对象。

在数据结构中,图是什么呢?喏,就是这样:

e23f8bbaafc66651c471d0e78170428a.png

Emmmm.....或者说常见一点的:

d7b15ab3897cc2df65876304c96193a9.png

图是一个比树形关系复杂一点点,比线性关系复杂两点点的东东。

  • 线性关系是一对一:一个前驱一个后继。

  • 树形结构是一对多:一个父多个子

  • 图形结构是多对多:任意两个顶点(图中的节点叫做顶点)都有可能相关,是一种多对多的关系。

图我们一般表示为 G = (V,E)

  • V:代表点

  • E:代表边

啥意思嘞,比如就上面那个绿油油的图,就可以表示为:

  • V={1,2,3,4,5,6}

  • E={(1,2),(1,5),(2,3),(2,5),(3,4),(4,5),(4,6)}

02PART图的术语 4ba8a2041968ccc96d06a4baab38929d.png

然后我们介绍一下图的一些术语。

图里最基本的单元是顶点(vertex),相当于树中的节点。顶点之间的关联关系,被称为边(edge)。而边可以分配一个数值(正负都ok),这个数值就叫做权重。

a0edcab2560fa94b61ce9c297eb0438d.png

(数据取自真实数据.....)

8c8cf484a858db986b08a66a43283b30.png

当然,这里值得一提的是,树也可以被当做简单的图,而链表也可以被当做简单的树。

03PART无向图和有向图 4ba8a2041968ccc96d06a4baab38929d.png

有方向的图就是有向图,无方向的图就是无向图。

边没有方向的图称为无向图。比如说我微信里同时加了这5个妹子,这5个妹子也都认识我。

7ecdeada21c6f4cafbed6d20580387e2.png

突然有一天,除了小花,其他四个妹子同时间都把我拉黑了。我的微信里能看到她们,她们却看不到我。

61b649a7ef16b59e4b55bf6134933f8a.png

然后嘞,无向图就变成了有向图:

03a08ff9e0836546206a903ea7ae86da.png

04PART完全图

所有的顶点互相连接在一起,那就是完全图。

在无向图中,若每对顶点之间都有一条边相连,则称该图为完全图。大概就是这样:

e6d54d494acc04863d773f1c175aa2ad.png

而在有向图中,若每对顶点之间都有二条有向边相互连接,也算是完全图。

05PART循环图 和 DAG 4ba8a2041968ccc96d06a4baab38929d.png

所有的这些概念,都是顺利成章产生的。

c06ba9e560c270c28c410459d52d0bbc.png c7e44f81e8de13ac35f18e196c39869f.png

循环图中的循环二字,指的是起点和终点是同一节点时产生的路径。所以,循环图和有向图或无向图并没有什么关系,因为都有可能产生循环。有向图,那就遵循边的方向。无向图,那只要成环就行。

8c4f241abec7aef6be9486df77002246.png

这三个:

  • 第一个就是无向循环图

  • 第二个就是有向非循环图

  • 第三个就是有向循环图

那第二个,更多的是被称为,有向无环图 DAG(Directed Acyclic Graph。那下面这个也是 :

5a89fd5a9ee2788daefc226e46013c77.png

那上面这个像不像一棵树。。。。。所以计算机结构中的树(大多都是有向的),其实就是一个DAG。

06PART加权图 d1b59241c8ddf4a3d8f4e76c54b759e3.png

用数学语言讲,设G为图,对图的每一条边e来说,都对应于一个实数W(e)(可以通俗的理解为边的“长度”,只是在数学定义中图的权可以为负数),我们把W(e)称为e的“权”。把这样的图G称为“加权图”。

这个没啥好说的了,就是边有长度的图(这个长度可以是各种含义)。大部分我们接触到的图,都是加权图。

77989cdc41492be54d0284342e262885.png

但是这里如果细分的话,又分出来了。顶点加权图和边加权图。说白了,就是有人发现如果只给边加上权值(就是长度)并不够用,有时候也需要给顶点加上权值。

3369c16a176f09d1a24c29d410e7d671.png

07PART连通图 a42e8558d659bbacafad1639d3de32ab.png

在图论中,连通图基于连通的概念。在一个无向图 G 中,若从顶点i到顶点j有路径相连(当然从j到i也一定有路径),则称i和j是连通的。

连通的图,就是连通图:

ad248fda19a446f9827361131cdcede7.png

如果不通了,就是非连通图:(这是一个图)

ccae1952a05bc23802cc5392a9ae2520.png

那没有连通在一起的这两坨(或者说移动的这两坨),我们叫作。(画外音,也许当年给联通移动起名的,就是程序员。从这里看,联通和移动本身就是对立的)

3ac6a4c352299f8c93766f16974e8eed.png

所以,如果我们的图里包含岛,那就是非连通图。

08PART稠密图和稀疏图 a42e8558d659bbacafad1639d3de32ab.png

终于出现一个有学问的。你看 连通图-非连通图,加权图-非加权图,循环图-非循环图。。。。。人家稠密,终于知道对应一个稀疏了。

如何定义稠密和稀疏?梵蒂冈也有人觉得他们的圣彼得大教堂拥挤,所以稠密稀疏本身就是一个主观定义。

8dc54a551b42e4feef22b3aa33e96d39.png

我们可以简单的认为,稀疏图的边数远远少于完全图,反之,稠密图的边数接近于或等于完全图。


本文主要介绍了图的基础知识,下一章会继续讲解图算法。希望大家多多支持!周末写文不容易,求个转发,来个评论。感谢~

漫画:知乎面试题(旋转数组最小值Ⅰ - 基础版)

漫画:知乎面试题(旋转数组最小值Ⅱ - 进阶版)

漫画:美团面试题(TOPK:求第K个最大的元素)

漫画:腾讯面试题(面试官问我会不会修供暖器,我说没问题)

漫画:位运算技巧整理汇总+一道被嫌弃的题目

如果你问我对学习算法有什么建议,这篇文章是必看的:

漫画:小白为了面试如何刷题?(呕心沥血算法指导篇)

漫画:呕心泣血算法指导篇(真正的干货,怒怼那些说算法没用的人)

82b323654d353ba57c2aeb516da63508.gif

 小浩算法,每日

71d6b534702f792275238e5bb658522b.png 5fc7ae9c786ef3c1e16040b6fc53e74a.png

关注领取《图解算法题》高清版

进群的小伙伴请加右侧私人微信(备注:进群)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值