图——从零起步的数据结构学习日志4【极客BOY-米奇】

前言(转载请说明作者:极客BOY)

在前面的线性结构和树形结构,我们可以总结出:

线性结构:一对一树形结构:一对多

但是现实情况可能复杂的多,关系可能错综复杂。

图在电子线路分析、人工智能、信息检索等方面都有广泛应用,也已经渗透到语言学、逻辑学、管理学、电子、化学、通信等各种研究领域中。

定义

多对多:每个元素都可以跟其他任何元素存在关系。

图中的数据元素通常称为顶点,所有顶点构成顶点集,我们通常用V(Vetex)来表示。

元素间的关系用边来表示通常用E(edge)来表示边集合。

e.g.1

(v1,v2)
v1
v2
v4
v3
v5
G1

G1={v,E}

V={v1,v2,v3,v4,v5}

E={(v1, v2),(v1, v4), (v2, v3),(v2, v5), (v3, v4), (v3, v5)}

PS:没有方向的边,用小括号来表示

e.g.2

v1
v2
v3
v4
G2

G2={V,E}

V={v1, v2, v3, v4}

E={<v1, v2>,<v1, v3>,<v3, v4>,<v4, v1>}

PS:有方向的边用尖括号来表示,有向边又称为弧

根据图中的边是否有方向,图可分为:无向图、有向图

有时,图中的边可能带有权值,这种带权图称为:网

在数学领域,权值指加权平均数中的每个数的频数,也称为权数或权重。

e.g.3

v1
v2
v3
v4
G3

具有4个结点、6条边,任两个顶点间都有一条边。

完全图:有n个顶点,n(n-1)/2条边的无向图。

有向完全图:有n个顶点,n(n-1)条边的有向图。

PS:完全图中的边数达到该图的最大值。

图的基本概念

我们通常用**“邻接”来描述两个顶点间的关系**

邻接点:若图中两个顶点之间存在边或弧,则称两个顶点互为邻接点。

例如在G1中,v2v3互为邻接点,因为存在边(v2,v3)
称:(v2,v3)依附于顶点v2和v3。

度:一个顶点的邻接点的个数

有向图中,顶点的度分为:

  • 入度:指以该顶点为弧头的弧的数目。
  • 出度:指以该顶点为弧尾的弧的数目。

v1的度是3,其中入度为1 (<v4,v1>) 出度为2 (<v1,v2> <v1,v3>)

路径

无向图G中,从顶点vi到顶点vj的路径是一个顶点序列,起点为vi,终点为vj ,可表示为一个这样的序列:

(vi,vi0,vi1, ....vi.n. vj) ,其中任意两个相邻的顶点间必须存在邻接关系。

如果图G是有向图,则路径也是有向的。

路径长度:路径上边或者弧的条数。

环/回路:如在G1中:{v2,v3,v5,v2}是一条回路,G2{v1,v3,v4,v1}也是一条回路。

图的存储

图是一个复杂的数据结构,任意两个元素间都可以存在联系。

在我们之前学过的线性结构和树形结构中,都可以使用顺序和链式存储来存储,在图中是不是也可以呢?

顺序存储:邻接矩阵

邻接矩阵即表示邻接关系的矩阵。

邻接关系:图中两个顶点间的直接联系,即图中的边或弧。

如何存储每条边?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客BOY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值