空间数据结构|第七章 图

一、图的定义和术语

这些概念看图能理解就行,详细可参考优快云收藏夹中的专栏

图(Graph)——图G是由两个集合V(G)和E(G)组成的,记为G=(V,E)

其中:V(G)是顶点的非空有限集;E(G)是边的有限集合,边是顶点的无序对或有序对

有向图——有向图G是由两个集合V(G)和E(G)组成的,

其中:V(G)是顶点的非空有限集;E(G)是有向边(弧)的有限结合,弧是顶点的有序对,记为<v,w>,v,w是顶点,v是弧尾,w为弧头

无向图——无向图G是由两个集合V(G)和E(G)组成的

其中:V(G)是顶点的非空有限集;E(G)是边的有限结合,是顶点的无序对,记为(v,w)或(w,v),并且(v,w)=(w,v)

有向完备图——n个顶点的有向图最大边数是n(n-1)

无向完备图——n个顶点的无向图最大边数是n(n-1)/2

——与图的边或弧相关的数

——带权的图

子图——如果图G(V,E)和图G1(V1,E1),满足:V1\subseteq V,E1\subseteq E,则G1为G的子图

顶点的度

     (1)无向图中,顶点的度为与每个顶点相连的边数

     (2)有向图中,顶点的度分成入度与出度。

                入度:以该顶点为头的弧的数目

                出度:以该顶点为尾的弧的数目

路径——路径是顶点的序列V={​{Vi0,Vi1,....Vin}},

        满足(Vij-1,Vij)\subseteq E<Vij-1,Vij>\subseteq E(1<j<n)

路径长度——沿路径边的数目或沿路径各边权值之和

回路——第一个顶点和最后一个顶点相同的路径叫~

简单路径——序列中顶点不重复出现的路径叫~

简单回路——除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫~

连通——从顶点V到顶点W有一条路径,则说V和W是连通的

连通图——图中任意两个顶点都是连通的叫~

连通分量——非连通图的每一个连通部分叫~

强连通图——有向图中,如果对每一对Vi,Vj\subseteq V,Vi\neq Vj,从Vi到Vj和从Vj到Vi都存在路径,则称G是~


二、图的存储结构

多重链表存储密度低,空间浪费大,一般不用

(一)邻接矩阵

表示顶点间相联关系的矩阵

1. 定义

设G=(V,E)是有n\geq 1个顶点的图,G的领接矩阵A具有以下性质的n阶方阵:

图示:

2. 特点:

        (1)存储空间
  • 无向图的邻接矩阵对称(对称矩阵),可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2
  • 有向图领接矩阵不一定对称;有n个顶点的有向图需存储空间为n^2
        (2)空间复杂度:O(|V|^{2})或  n^{2}
  • 只与顶点数相关,与边数无关
  • 适用于顶点少,边多(稠密图)的情况。( 若边较少,二维数组会出现大量的空间浪费)
        (3)顶点的度
  • 无向图:顶点Vi的=第i(或第i列)的非零元素个数
  • 有向图:顶点Vi的出度是A中第 i 元素之和,顶点Vi的入度是A中第 i 元素之和
  • 邻接矩阵中的数值没有-1!!只有0、1 .                  
  • 邻接矩阵法求顶点的度、出度、入度的时间复杂度均为O(|V|)或O(n)

3. 结构体代码实现

Vex顶点表,存放顶点信息

Edge领接矩阵

#define MaxVertexNum 100					//顶点数目的最大值
typedef struct {
	char Vex[MaxVertexNum];					//顶点表,存放顶点信息
	int Edge[MaxVertexNum][MaxVertexNum];	//邻接矩阵,边表
	int vexnum, arcnum;						//图的当前顶点数和边数/弧数
}MGraph;

(1)顶点中可以存更复杂的信息;

(2)由于在邻接矩阵当中只需要存0和1两种状态,所以边表的数据类型可以改为bool型或枚举类型;

 4.邻接矩阵的性质

设图G的邻接矩阵为A(矩阵元素为0/1),则A^{n}的元素A^{n}[i][j]等于由顶点i到顶点j的长度为n的路径的数目;

例如(第一个应该是从A到D):

5. 网络的邻接矩阵/带权值

原本的0变∞,原本的1变权值


(二)关联矩阵

表示顶点与边的关联关系的矩阵

1.定义:

设G=(V,E)是有n\geq 1个顶点,e\geq 0条边的图,G的关联矩阵A是具有以下性质的n\times e阶矩阵

(1)有向图:

A[i,j]=1,i顶点与j边相连,且i为尾

       =0,i顶点与j边不相连

       =-1,i顶点与j边相连,且i为头

(2)无向图

A[i,j]=1,i顶点与j边相连

       =0,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值