数据结构之图的概念

定义:

图 (Graph) 是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。
图论 (Graph theory) 是数学的一个分支,图是图论的主要研究对象。
表达式:G=(V, E)
V:顶点(数据元素)的有穷非空集合。
E:边的有穷集合。
Graph = (Vertex, Edge)

四种图形式:

无向无权图:顶点之间相连的线我们称为边,每条边都是无方向的,边无权值。
在这里插入图片描述
有向有权图:顶点之间相连的线我们称为弧,每条弧都是有方向的,并且每条边都有权值(长度)。
在这里插入图片描述
还有两种分别是:有向无权图和无向有权图

我们着重考虑前两种,因为其特点分别使用的是两种典型存储方式:邻接表法和矩阵法

图的存储方式:

邻接表法:
我们在哈希表时候讲过了,邻接表的基本形态,并实现了跳表结构。
邻接表就是在一个数组旁边接多个链表节点,表示邻接的关系。如下图,无向图经常采用这种方法
在这里插入图片描述
缺点来说:
会有数据冗余,A的链表存了B,C中也会有B

矩阵法:
采用二维数组,来表达相连的关系和两顶点之间的权值。
如下图:
在这里插入图片描述
也就是这种情况,因为arr[i][j]刚好能表达坐标,(x,y)也就是能表达两点的方向,也能够存储权值。
所以常常使用这个来存储有向带权图。
这种结构缺点是:
插入效率低,查找效率低。

但是这是种数据结构,用来存储,难免的会有一定缺陷,咱们知道就好了。
对于其他两种的实现,无向图一般是邻接表法,如果带权,那么在数据上下一番手笔就可以。
有向用矩阵法,不带权的话表示方向,用布尔值够用

图的一些冗杂的概念:

1.线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)。
2.线性表可以没有元素,称为空表;树中可以没有节点,称为空树;但是,在图中不允许没有顶点(有穷非空性)。
3.线性表中的各元素是线性关系,树中的各元素是层次关系,而图中各顶点的关系是用边来表示(边集可以为空)。
4.无向完全图:在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。(含有n个顶点的无向完全图有(n×(n-1))/2条边)
5.有向完全图:在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图。(含有n个顶点的有向完全图有n×(n-1)条边)
6.稀疏图:有很少边或弧的图。
7.稠密图:有较多边或弧的图。
8.网:边/弧带权值的图。
9.邻接:有边/弧相连的两个顶点之间的关系。
(1)对于无向图来说,存在边(vi, vj),则称vi和vj互为邻接点;
(2)对于有向图来说,存在弧<vi, vj>,则称vi邻接到vj,vj邻接于vi。
10.关联(依附):边/弧与顶点之间的关系。
存在(vi, vj)/<vi, vj>,则称该边/弧关联于vi和vj。
11.顶点的度:与该顶点相关联的边的数目,记为TD(v)。(total degree)
在有向图中,顶点的度等于该顶点的入度和出度之和。
顶点v的入度是以v为终点的有向边的条数,记作ID(v)。(in degree)
顶点v的出度是以v为始点的有向边的条数,记作OD(v)。(out degree)
12.路径:连续的边/弧构成的顶点序列。
13.路径长度:路径上边或弧的数目/权值之和。
14.回路(环):第一个顶点和最后一个顶点相同的路径。
15.简单路径:除路径起点和终点可以相同外,其余顶点均不相同的路径。
16.简单回路(简单环):除路径起点和终点相同外,其余顶点均不相同的路径。
17.连通图(强连通图):在无(有)向图G=(V, {E})中,若对任何两个顶点v、u都存在从v到u的路径,则称G是连通图(强连通图)


一句话,会实现,知道大概意思就行了,没那么麻烦吧。。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值