文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php中图的概念以及存储的方法

2023-06-20 18:25

关注

这篇文章主要讲解了“php中图的概念以及存储的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中图的概念以及存储的方法”吧!

随着学习的深入,我们的知识也在不断的扩展丰富。树结构有没有让大家蒙圈呢?相信我,学完图以后你就会觉得二叉树简直是简单得没法说了。其实我们说所的树,也是图的一种特殊形式。

图的概念

还记得我们学习树的第一篇文章时看到的那张关于树的图片吗?

php中图的概念以及存储的方法

在当时,我们就说过,图c 不是一颗树,而是一个图。为什么呢?从树的定义我们可以看出,树只能有一个根结点,平级之间不能有联系,可以有多个子结点。而图就不用遵守这些规则,图的特点就是结点之间都可以互相有联系。比如下图这样的都是图。

php中图的概念以及存储的方法

在上面所画的图中,图b 是的箭头的,而 图a 的连接线是没有箭头的,像这样有明确的方向的指向的图就叫做 有向图 。而没有箭头的,也就是没有方向指向的图就叫作 无向图 。

我们先将目光移到 图a-1 ,其实它就是把 图a 旋转了一下。大家能看出来了吗?如果忽略掉结点 4 和 1 之间的连线,那么它就是一颗树。是不是和我们上面关于树的图中的 图c 的概念一致了。

关于图的比较正式的官方定义是:

图(Graph)G 由两个集合 V 和 E 组成,记为 G=(V, E) ,其中 V 是顶点的有穷非空集合,E 是 V 中顶点的有穷集合,这些顶点偶对称为边。

在 有向图 中,连接两点的那个线段,从开始的结点到指向的那个结点可以记为 <x, y> 。<x, y> 和 <y, x> 是两个不同的边,也可以叫作 弧 。根据 图a ,我们可以看到这个图中有 <1, 2> 、 <2, 1> 、 <1, 3> 、 <3, 1> 、 <1, 4> 、 <4, 1> 、 <3, 4> 、 <4, 3> 这几条边。而 图b 中,因为它是有向图,所以它的边只有 <1, 2> 、 <1, 3> 、 <3, 4> 、 <4, 1> 这四条。

是不是感觉在看上面的图片的时候还比较清晰,一看这个定义就一脸懵逼了?像这种定义,如果你是需要考试的同学,那就还是要背下来的。如果只是像我一起想以学习应用或者了解为主的话,就不用去死记硬背了。V 就是结点,E 就是这些这些结点之间的关系,两个顶点之间的关系,也就是图上的那些连接结点的线段就是边。

OK,这三个最最基础的概念搞明白了,我们就继续学习其它的和图有关的那一大车术语!

图的相关术语

首先,我们用 n 来表示图中顶点的数目,用 e 来表示边的数目,记住这两个代号。

php中图的概念以及存储的方法

上图中右边的那些子图都是属于原图的子图,可以看出子图可以产生非常多的形态,有向图 也是相同的概念,不过相对于 无向图 来说,有向图能够生成的子图更少一些,因为它的边是有方向的。

php中图的概念以及存储的方法

其实完全图的概念就是图中所有相邻的结点都有边能够连结在一起。

对于 有向图 来说,虽说边是有方向的,当然我们也可以定义一个来回的方向,比如 <1, 2> 和 <2, 1> ,在有向图中我们就要画上两个相反方向的箭头表示可以从1到2也可以从2到1。而 无向图 中则是用一个边来代替这两个边的概念了,本身的那一条没有箭头方向的边就是双向的。

最上方的的图片上 图a-2 和 图b-1 的边上的数字代表的就是权重。这两张图就可以称为网图。权重的概念我们后面在讲相关的算法时会学习到,从这两张图中,我们其实就可以很明显的看出,如果要从 结点1 走到 结点4 的话,并不是直接走 <1, 4> 这条边,而是走 <1, 3> 、 <3, 4> 这条路线更快些。

还是继续来看 图b 。结点1 有两个出度,一个入度。这个貌似不用解释太多了吧。

php中图的概念以及存储的方法

包括后面的三个概念也在这张图中一并给出了。在 无向图 中,连通分量就等于极大连通子图,在这个图中,我们有两个连通分量。

其实就是通过一条路径,能够让图中所有的结点串联起来。在连通分量的图中,我们就根据两个连通分量生成了两个最小生成树。它们的 连通分量1 的生成树的结点并不一定非要是这种结构,我们可以让 结点4 在 结点2 下,这取决于我们如何遍历来生成这颗最小生成树。

最上面我们的 图a 的最小生成树其实就可以是 图a-1 去掉那条红色虚线。当然,也可以让 结点4 也在 结点1 下面,同样也是取决于我们的程序要如何遍历图来生成什么样的树。

是不是看完之后晕头转向了?没关系,这些术语我们在后面的学习中将会经常用到,而且这还不是最全面的。大家可以根据参考书目和其它学习资料来对图的相关术语进行更加深入的学习和理解。

感谢各位的阅读,以上就是“php中图的概念以及存储的方法”的内容了,经过本文的学习后,相信大家对php中图的概念以及存储的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯