C语言数据结构——图

一、图的基本概念

图是由顶点集合及顶点间的关系集合组成的一种数据结构。vertex, edge
图G的定义是: G =(V,E)

其中,
V = {x|x∈某个数据元素集合}
E ={ (x,y)|x,y∈V} (无向图) 或
E = { <x, y>|x,y∈V并且Path(x, y)} (有向图)
其中,(x,y)表示从 x到 y的一条双向通路,即(x,y)是无方向的;
Path(x,y)表示从 x到 y的一条单向通路,即Path(x,y)是有方向的。

图的基本术语:

(1)顶点和边:
(2)有向图和无向图:
(3)完全图:
(4)邻接顶点:
(5)顶点的度:
(6)路径:
(7)权:
(8)路径长度:
(9)子图:
(10)连通图(无向图)和强连通图(有向图) :
(11)生成树(无向图) :
(12)简单路径和回路:

二、图的存储结构

图的存储结构主要有邻接矩阵邻接表两种。

2.1、图的邻接矩阵存储结构

1)无向图的邻接矩阵一定是对称矩阵: 其中V表示了图的顶点集合,A表示了图的邻接矩阵
在这里插入图片描述
2)有向图的邻接矩阵一般是非对称矩阵:其中V表示了图的顶点集合,A表示了图的邻接矩阵
在这里插入图片描述
带权图及其邻接矩阵 :其中V表示了图的顶点集合,A表示了图的邻接矩阵。

对于带权图:
邻接矩阵第i行中所有0<aij<∞的元素个数等于第i个顶点的出度。
邻接矩阵第j列中所有0<aij<∞的元素个数等于第j个顶点的入度。

在这里插入图片描述

2.2、图的邻接表存储结构

在这里插入图片描述

三、图的遍历

在这里插入图片描述

四、图的拓扑排序

我们把用有向边表示活动之间开始的先后关系。这种有向图称为用顶点表示活动网络,简称AOV网络。
在这里插入图片描述

五、图的最小生成树

5.1、普利姆算法

从连通网络 N = { V, E }中的某一顶点 u0 出发,选择与它关联的具有最小权值的边(u0, v),将其顶点加入到生成树的顶点集合U中。以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u, v),把它的顶点加入到集合U中。如此继续下去,直到网络中的所有顶点都加入到生成树顶点集合U中为止。
在这里插入图片描述

5.2、克鲁斯卡尔算法

将连通网中所有的边按照权值大小做升序排序,从权值最小的边开始选择,只要此边不和已选择的边一起构成环路,就可以选择它组成最小生成树。对于 N 个顶点的连通网,挑选出 N-1 条符合条件的边,这些边组成的生成树就是最小生成树。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值