数据结构——十字链表

什么是十字链表:

十字链表(Orthogonal List) 是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表和逆邻接表结合起来得到的。用十字链表来存储有向图,可以达到高效的存取效果。同时,代码的可读性也会得到提升。

了解十字链表:

        我们来看下面这两副图

由上图我们不难看出,十字链表一共有两个结构体

        其中一个储存节点,用指针数组的方式存储。这个结构体中由三个部分组成,如:数组中第一个元素:A表示存储的节点head表示A连着的,tail表示连着A的。A的head所连着的结构体永远只会调用head去连接下一个结构体,而A的tail所连着的结构体也只会调用tail去继续连接结构体

        还有一个是两个节点之间的关系,用链的方式将他们连接。这个结构体由五个部分组成:如A的head连着的第一个结构体(A连着B位权为40),其中前两个储存A和B节点在数组中的下标。第三个表示位权40。第四个表示连着B的第五个则表示A连着的。在这个结构体中,只有两个节点,也只会出现第二个元素所代表的节点被谁连着,第一个元素所代表的节点连着谁这唯一情况。所以tail只会被第二个元素所使用,head只会被第一个元素使用。而这两个指针

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值