6.2.3+6.2.4十字链表、邻接多重表

知识总览:

邻接矩阵缺点是空间复杂度高,邻接表缺点是在找有向图的入度时时间消耗太大(要遍历所有节点) 

十字链表只用于存储有向图:

十字链表存储图的话定义2个结构体:节点+弧,从某个顶点绿色的指针线一直往后找绿色的话可以找到从当前顶点往外发射的所有弧/边(该顶点出度),顺着橙色的指针一直往后找橙色可以找到所有指向该顶点的弧(该顶点入度,即解决了邻接表找有向图入度难的问题),不管是从绿色还是从橙色开始找,最后都没有边节点的时候就记为null

过程如下:

下图中的A、B、C、D四个顶点数据信息存储在一维数组里,即每个顶点都有索引编号,即A编号为0,B为1,C为2,D为3,从下图中可看出从A节点出发的边有2条,A->B,A->C,指向A节点的边有2条,D->A,C->A,

如找A节点的出度:从A节点firstout作为弧尾绿色块发出的指针指向出发(A对应的0号节点块为绿色色以下一直找绿色块发出的线),可以看到指向0和1块,即0编号节点指向1编号节点,即对应的A节点指向B节点,再从0和1块下方所在的绿色块发出的线出发指向0和2块,即0编号节点指向2编号节点,即对应的A节点指向C节点,继续从当前0和2块下方的绿色块发出的线出发,发现当前的绿色块有^标识,即再无边节点指向了,再无节点和A节点相邻了,到此结束

找A节点的入度:从A节点firstin作为弧头的橙色指针指向出发(A对应的0号节点块为橙色以下一直找橙色块发出的线),可以看到指向了2和0块,即2编号节点指向0编号节点,即对应的C节点指向A节点,再从2和0块所在的橙色块发出的线出发指向了3和0块,即3编号节点指向0编号节点,即对应的D节点指向A节点,继续从当前3和0块的橙色块发出的线出发,发现当前的橙色块有^标识,即再无边节点指向了,即再无节点和A节点相邻了,到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值