图的定义,术语,存储方式和建立

图的定义和术语 

图是由顶点集合和弧的集合组成的。记作 G=(V,E).其中V(G)表示顶点集,E(G)表示弧集。顶点即为数据结构中的数据元素。<v,w>表示从 v 到 w 的一条弧,有方向的弧中,v 表示弧尾或者始点,w 表示弧头或者终点,此时的图称为有向图(v,w)这样的无序对表示 v 和 w 之间的一条边。此时顶点之间不再强调方向性,称之为无向图。在实际应用中,图的弧或者边往往与具有一定意义的数相关,称这些数为。带权的无向图和有向图分别称为无向网有向网

图中的顶点数为 n ,边或者弧的数目为 e,若不考虑顶点到其自身的弧或边,则对于无向图,边数e的范围是0到n(n-1)/2.称具有n(n-1)/2条边的无向图为无向完全图。对于有向图,弧的数目 e 的范围是0到 n(n-1) 称具有n(n-1)条弧的有向图为有向完全图。若 e<nlogn,则称为稀疏图,否则为稠密图。

如果图 G' 的顶点集合是另一个图 G 的顶点集合的子集, G' 的弧(边)集合也是 G 对应集合的子集,则成 G' 为 G 的子图

度,入读和出度的概念:有向图中,一个顶点,有多少弧从这点出发,则这个点的出度就是多少,有多少弧到达这个点,则它的入度就是多少。出度和入度的和为度。无向图中,度的定义为与该顶点相连的边的数目。

路径和回路:从一个顶点到另一个顶点,经过许多其顶点,这些顶点加在一起的序列就是这两个顶点之间的路径。中间弧的数目就是路径长度。如果从一个顶点出发最后又回到了这个顶点,则这种路径是一个回路或环。

图的基本操作

对图的基本操作包含构造图,销毁图,查询途中顶点,对顶点赋值等等。

 图的存储结构(建立)

图中的顶点可能与其他任意一个顶点之间有关系。因此图没有顺序存储表示的结构,图有两种常用的存储结构。

1,图的数组(邻接矩阵)存储表示

图的邻接矩阵用于表示图中顶点之间关系(及弧或边的权)的矩阵。如果图中顶点数为 n 则矩阵为 n 行 n 列。对于矩阵中的某个值 A[ i ][ j ], 如果顶点 Vi 和 Vj 之间有弧或者边的存在,则 A[ i ][ j ]=1否则为0.无向图的邻接矩阵一定是对称矩阵。网的邻接矩阵中,当两点之间有连接时,对应的矩阵中的元素应该赋值为对应的权值,否者赋值为∞。实际应用中的有向图的邻接矩阵多为稀疏矩阵,通常用二维数组表示,除非矩阵特别大才会用矩阵的压缩存储。

#include<stdio.h>
#include<limits.h>

const int MAX = INT_MAX;       //定义最大值为∞
const int MAX_VER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值