图的存储结构

邻接矩阵:图的静态数组存储法
邻接表:稀疏图的链式存储法
十字链表:有向图的链式存储法
邻接多重表:无向图的链式存储法

邻接矩阵

构成

邻接表表示法:数组表示法(静态)
两个数组:顺序表、邻接矩阵
顺序表:存储顶点信息的一维数组
邻接矩阵:存储图中顶点之间关联关系的二维数组

无权图的邻接矩阵

在这里插入图片描述
例1:邻接矩阵
在这里插入图片描述
在这里插入图片描述
例2:邻接矩阵
在这里插入图片描述
在这里插入图片描述

网的邻接矩阵

在这里插入图片描述
例3:邻接矩阵
在这里插入图片描述
在这里插入图片描述

图的存储举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

邻接矩阵的特点

(1) 存储空间
无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需为n(n+1)/2个存储空间。
有向图邻接矩阵不一定对称;有n个顶点的有向图需为n²个存储空间。
(2) 便于计算
① 判断任意两个顶点是否相邻:Aij=0、Aij=1、Aij=∞、 Aij≠∞。
② 计算顶点的度:
无向图中顶点Vi的度就是邻接矩阵中第i行元素之和。
有向图中,顶点Vi的出度是邻接矩阵中第i行元素之和,顶点Vi的入度是邻接矩阵中第i列元素之和。
③ 便于实现图的一些基本操作,如计算顶点v的第一个邻接点:在顺序表找到v的下标i,在邻接矩阵第i行中找到第一个邻接点下标j,从顺序表中取的第一个邻接点的信息。

邻接矩阵的缺点

(1) 建立存储结构时,必须知道顶点的个数
(2) 顶点的插入和删除效率非常低
(3) 对于稀疏图而言,存储空间浪费严重

邻接表

构成

顺序表:即表头结点表(顶点结点表)
边表:即边链表
邻接表方法:是一种顺序和链式存储相结合的方法。边表只存储关联信息。
例1:下图的邻接表表示法
在这里插入图片描述

结点的存储结构

在这里插入图片描述
在这里插入图片描述
例2:下图的邻接表表示法
在这里插入图片描述
在这里插入图片描述
例3:下图的邻接表表示法
在这里插入图片描述

邻接表的特点

(1) 存储空间
无向图n个顶点、e条边,存储空间为:n个表头结点+2e个边结点。
有向图n个顶点、e条弧,存储空间为:n个表头结点+e个弧结点。
当为稀疏图时,e很小,节约空间。
(2) 无向图的度
vi的度=顺边链i计数
(3) 有向图的出度、入度
vi的出度=顺边链i计数
vi的入度:遍历边表
vi的入度=对逆邻接表顺边链i计数
在这里插入图片描述
(4) vi与vj是否相邻:遍历边表
例4:有向图的邻接表和逆邻接表表示法
在这里插入图片描述

十字链表

十字链表的组成

十字链表:将有向图的邻接表和逆邻接表结合在一起得到的。由弧结点组成。
顺序表:存储顶点信息的一维数组。由顶点结点组成。

十字链表的顶点结点

在这里插入图片描述
数据域data:顶点信息
链域firstin:用于指向以该顶点作为弧头的第一个弧结点,相当逆邻接表的头指针
链域firstout:用于指向以该顶点作为弧尾的第一个弧结点,相当于邻接表的头指针

十字链表的弧结点

在这里插入图片描述
位置域tailvex:表示弧尾顶点位置号
位置域headvex:表示弧头顶点位置号
链域hlink:指向与此弧的弧头相同的下一条弧,相当逆邻接表的下一弧结点
链域tlink:指向与此弧的弧尾相同的下一条弧,相当邻接表的下一弧结点
info:指向该弧的相关信息
例:有向图的十字链表表示法
在这里插入图片描述

邻接多重表

邻接多重表的组成

邻接多重表:将无向图的边(vi,vj)和边(vj,vi)合而为一,用一个边结点表示。
顺序表:存储顶点信息的一维数组,由顶点结点组成。

邻接多重表的顶点结点

在这里插入图片描述
数据域data:顶点信息
链域firstedge:用于指向第一条依附于该顶点的边,即指向边结点

邻接多重表的边结点

在这里插入图片描述
标志域mark:可用于该条边是否被搜索过
位置域ivex、jvex:边依附的两个顶点的位置
链域ilink:用于指向下一条依附于顶点ivex的边
链域jlink:用于指向下一条依附于顶点jvex的边
info:指向该弧的相关信息
例:下图的邻接多重表表示法
在这里插入图片描述
欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程子的小段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值