用一维数组g[]存储有4个顶点的无向图如下:_图论开坑图存储的三种方式

本文介绍了图的基本概念,如无向图、有向图、加权图,并探讨了如何存储图,包括邻接矩阵、邻接表和链式前向星三种方法,特别强调了它们的空间效率和适用场景。邻接矩阵适用于稠密图,但空间复杂度高,邻接表和链式前向星则在空间效率上有优势,适合稀疏图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图是一种常见的抽象模型,在计算机专业中的应用尤其广泛。数据结构和算法是计算机专业的必修课程,而图则是数据结构和算法课上的必修内容,图论问题是算法竞赛的常客,图的重要性可见一斑。其它算法学的再好,不会图论的话,那永远也称不上是算法高手。那么问题就来了,怎么学习图算法呢。

要学习图算法,首先咱得有个图不是,所以学习图算法的第一关就这么来了–怎样能创建/存储图呢?

4d5e9457a111780fe1d4aa8c1ff2066b.png

一.基本概念

再讲具体的存储之前,先讲一下图的基本概念

图可以描述现实世界的许多状态,由结点和结点之间的连线组成,图的相同与否仅与结点和边的数量有关和连线的具体长度和结点的位置无关。比如:

上面的两个图就表示了同一个图形。当然,这里说的相同与否是在同一类型下的图的比较。图可以分成很多种类。

1.可以通过边有无方向把图分成有向图和无向图和混合图

(1)每一条边都是无向边的图称为无向图,上面图中的两个图都是无向图。

(2)每一条边都是有向边的图称为有向图,下面图中的图就是有向图。

ea68a7f8f7d559c819509e807f2ef329.png

(3)如果图中的一些边是有向边,一些边是无向边,则称这个图是混合图。

2.除了看边的方向,还可以通过看边是否有权把边分成无权图和加权图。

(1)无权图:顾名思义,边上没有权值的图就叫无权图,上述所有的图都属于无权图。

(2)加权图:在无权图的基础上给每条边加上权值,就称为加权图。如下图所示,边上的数值就是权值。

3.将以上两点结合可得多种图

(1)无向无权图,边没有权值,没有方向

(2)有向无权图,边有方向,无权值

(3)加权无向图,边有权值,但没有方向

(4)加权有向图,边有权值,有方向

这些图就是1. 2. 示例图的结合,这里就不在特意放图描述了

4.度的概念和相关定理

在一个图中,和一个结点相关联的边数就称为该结点的度数。据此有以下定理。

(1)每个图中,结点的度数总和等于边数的两倍。

(2)在任何图中,度数为奇数的结点必定是偶数个。

5.子图和补图

子图:设图G=,如果有图G‘=,E‘>,且E’⊆E,V‘⊆V,则称G’为G的子图。如果G的子图包含G的所有结点,则称该子图为G的生成子图。

补图:设图G‘=,E‘>是图G=的子图,若给定另外一个图G’‘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值