数据结构学习日志之十九--十字链表与邻接多重表

之前我们讲到,对于有向图,它的邻接表有出度和入度之分。为此,重新定义顶点结构和边表结构

顶点结构


data表示顶点数据,firstIn表示入边表,firstOut表示出边表

边表结构


tailVex表示弧起点顶点下标,headVex表示弧终点顶点下标,headLink指向弧头相同的下一条弧,tailLink指向弧尾相同的下一条弧


这就是十字链表,好处就是把邻接表和逆邻接表整合在一起,既容易找到以Vi为尾的弧,也容易找到以Vi为头的弧。


邻接多重表:

对于无向图,邻接表对边的操作不方便,因为我们要删除一条边的话,要删除表的两个结点和修改与之关联的指针域

为此,我们模仿十字链表,对无向图的边表结构进行改装


其中iVex和jVex是与某条边依附的两个顶点在顶点表中的下标。iLink指向依附顶点iVex的下一条边,jLink指向依附顶点jVex的下一条边。


如上图。以


为例,iLink为依附顶点v1的边,由于在一维数组已经指向(1,2)了,所以在iLink应该指向(1,0)这条边。jLink为依附于v2的边,边表(2,3)指向(1,2),一维数组指向(2,3),所以jLink指向(2,0)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值