数据结构之图

图的常见术语:

1、无向图    

所有的边无所谓方向的图

2、有向图

边有可能有方向也有可能没方向,边对图来说重要。

3、网络

边上有权重的图 (每一条边上有数字,用于表示一些作用)

边是顶点对,

无向边用(v,x)  双向通道

有向边用<v,x>   单向通道,表示从V到X的边

 

在程序中表现图分为两种,

1、邻接矩阵。

1+2+3+4+.....+n = (n+1)*n/2 = n(n+1)/2 ,所以第i行第j个的话 = (i*(i+1)/2+j) 为1则i和j相连

邻接矩阵的好处:

1、直观。简单。好理解

2、方便检查任意一堆顶点间是否存在边  (看第i行第j个是否等于1)

3、方便找任一顶点的所有“邻接点”(有边直接相连的顶点)

4、方便计算任一顶点的“度”(出度 该点发出的边数。入度  指向该点的边数)

 

怎么任一顶点计算度:

无向图:对应的行或者列中所有的非0元素的个数

有向图:对应行非0元素的个数是“出度”;对应列非0元素的个数是“入度”

 

邻接矩阵的坏处:

浪费空间:

存稀疏图时会浪费空间(点很多而边很少)有大量无效元素

存稠密图(特别是完全图    矩阵里值都为1)还是很划算

浪费时间:

统计稀疏图中一共有多少条边(扫描后找个数,但是个数很少)

2、邻接表

 

邻接表:N个头指针,只需要存放next,占用N个域;2E个结点(每条边存两遍),每个结点占用2个域(权重域和next各1个域)。共N+2E*2
邻接矩阵:共N^2个元素,每个元素只需要存放权重。共N^2个域
当两者相等时,N+2E*2=N^2
所以当E<N(N-1)/4时,是省空间的。

 

图的遍历

1、广度优先

2、深度优先

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值