图的存储十字链表和邻接多重表

目录

一、十字链表存储

二、邻接多重表存储无向图

小结:

下一篇:图的基本操作与遍历


一、十字链表存储

注:A->B  ,其中B是弧头,A是弧尾

 

例子:

即:顶点结点中绿色色块代表由某条弧指向另一个顶点

橙色色块代表被某个顶点指向

弧结点中下面的色块,绿色代表都是同一个弧尾也即是同一个顶点指向其他顶点,橙色部分代表都指向同一个顶点

重点还是看弧结点中上面的色块很明显的表示了由哪个顶点指向哪个顶点,找某个顶点的出度就是从绿色色块出发,入度就是从橙色色块出发

只能存储有向图

空间复杂度O(|V|+|E|)

 

 

邻接矩阵存储无向图,会出现时间复杂度高O(|V|^2)

邻接表存储会出现每条边都有两份冗余信息,删除顶点、边等操作时间复杂度高

于是有:

二、邻接多重表存储无向图

 

例子:

构造顺序:先找A邻接的所有顶点,并构造边结点,再依次构造BCDE,已有的边不用重新构造,例如在处理B时的边BA直接将B指向已有的AB边,左右无所谓因为是无向边

 

删除一个边结点也很容易,只需要把橙色和绿色指向它们各自的下一个结点即可

删除顶点,需要删除与该顶点相连的所有边结点,并把指向这些边结点的指针全部赋值为空

 

空间复杂度

O(|V|+|E|)

注:只适用于无向图

 

小结:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值