图的两种表示方法

//图:
/*
顶点集合:V(vertex)
边的集合:E(edge)
边是顶点对:(v,w)属于E
有向边:<v,w>表示从v指向w的边(单行线)
不考虑重边和自回路
*/

//抽象数据类型的定义:
//1.类型名称:图(Gragh)
//2.数据对象集:G(V,E) 非空的有限顶点集V合一个有限边集合E组成
//3.操作集

/*常见术语:
1.无向图,有向图
2.网络:带权重的图
3.出度:从顶点出发的边数
4.入度:指向该点的边数
*/

/邻接矩阵表示法:G[N][N]
G[i][j]=1,若<vi,vj>是G中的边
0,else
但对于无向图,邻接矩阵会有一半的空间浪费(是对称的)
解决方法:用一个长为N
(N+1)/2的一位数组存储下三角矩阵A
G00,G10,G11,G20…
Gij即为A[i*(I+1)/2+j]
Gij的值定义为权重

缺点:存储稀疏图时会有大量无效元素
*/

/*邻接表:G[N]为数组指针,对应矩阵每行一个链表,只存非0元素
缺点;
1.一定要够稀疏才合算!
2.关于任一顶点度的计算:
对无向图:是的
对有向图:只能计算出度,需构造逆邻接表才能计算入度
3.不方便检查任意一对顶点之间是否存在边
*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值