在这里了解图数据结构的要点
来源:dev.to
时间:2024-12-17 10:46:00 446浏览 收藏
本篇文章给大家分享《在这里了解图数据结构的要点》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

此博客适合那些想要了解概念要点而不是拐弯抹角的开发人员。我们将在这篇文章中了解图数据结构。让我们开始吧。
什么是图表?
图是非线性数据结构,由边和节点两个部分组成。

节点是:-
- 图形的基本单位,
- 也称为一个或多个顶点,以及
- 可以带标签或不带标签。
边缘是:-
- 两个节点之间的连接,
- 也称为弧线,以及
- 可以带标签或不带标签。
图表类型:-
- 空图:没有边,
- 三元图:只有一个节点,
- 循环图:至少包含一个循环,
- 循环图:所有节点相连构成一个循环,
- 有向图:它的边有方向,
- 无向图:它的边没有任何方向,
- 加权图:为每条边分配一些值,
- 连通图:我们可以从一个节点访问任何其他节点(它不必是唯一的边),
- 未连接图:某个节点至少有一个节点断开连接,
- 正则图:每个顶点都有相同数量的邻居,
- 完全图:每个节点都通过唯一的边连接到另一个节点,
- 有向无环图:没有环的有向图,
- 二部图:它的节点可以分为2个集合,使得集合之间不存在边。
我们如何存储图表?
有2种方法:
- 邻接矩阵,以及
- 邻接矩阵
邻接矩阵是表示图数据结构的二维矩阵。行和列代表节点,矩阵中的值代表边。

在上图中,4 个节点通过边连接。节点A与所有节点相连,因此在A(行或列)与其他节点的行或列相交的单元格中,该值被添加为1。节点 B 仅连接到节点 A,导致节点 B 与节点 A 相交的单元格中值为 1,其他单元格值为 0。
为相邻矩阵添加或删除边的时间复杂度为 O(1)。它可以在以下情况下使用:-
- 图表具有最大可能的边,
- 没有内存限制,并且
- 该图具有复杂的结构。
相邻列表借助多个链表或数组来存储图形。行代表节点(检查下图),行中的值代表邻居。

上图中,有 5 个节点。节点 A 连接到节点 B 和节点 D,这就是第一个数组具有这些值的原因。类似地,节点 B 连接到节点 A、节点 C、节点 D 和节点 E,因此第二个阵列在第二个阵列中具有这些节点。
检索或删除边的时间复杂度为 O(n),添加边的时间复杂度为 O(1)。相邻列表可以在以下情况下使用: -
- 节点的边较少,
- 存在内存限制,并且
- 图表不太复杂。
图:相邻列表和相邻矩阵之间的视觉比较。

图表的用例
图数据结构的一个流行示例是:在足球场上,每个球员都可以被视为一个节点,他们的交互代表边。
图的使用场景与前面的示例类似,例如:-
- 在每个人都是节点的社交网络中,
- 在以 PC 和路由器为节点的计算机网络中,
- 交通网络等等...
终于介绍完啦!小伙伴们,这篇关于《在这里了解图数据结构的要点》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
325 收藏
-
405 收藏
-
413 收藏
-
293 收藏
-
356 收藏
-
119 收藏
-
182 收藏
-
288 收藏
-
120 收藏
-
392 收藏
-
321 收藏
-
2. CSS 样式使用 ::after 伪元素来在图片上叠加文字:
.im" class="aBlack">CSS图片上叠加文字的实现方法,主要通过使用伪元素(如 ::after)来在图片上方添加内容。以下是详细步骤和示例代码:1. HTML 结构假设你有一个包含图片的容器,结构如下:2. CSS 样式使用 ::after 伪元素来在图片上叠加文字: .im