Java基础 - 线性表之链式存储结构-循环链表

循环链表是一种收尾相连的链表。将单链表的尾节点next指针改为引用单链表header节点。这个单链表就成了循环链表。


循环链表具有一个显著特点:从链表的任意节点出发均可找到表中的其他所有节点,因此循环链表也可以被称为“无头无尾”。如下图所示:


循环链表中的第一个节点之前就是最后一个节点,反之亦然。循环链表的无边界使得它实现法多方法时会更容易,在这样的链表上设计算法会比葡萄链表更加容易。


新加入的节点应该是在第一个节点之前(采用头插法插入),还是最后一个节点之后(采用尾插法插入),可以根据实际要求灵活处理,具体的实现区别不大。


就程序实现来说,循环链表与普通单链表差别不大保证链表中tail.next = header即可。


除此之外,还有一种伪循环链表,就是访问到最后一个节点之后的时候,手工地跳转到第一个节点,访问到第一个节点之前的时候也一样,这样也可以实现循环链表的功能,当直接用循环链表比较麻烦或者可能有问题是,可以考虑使用这种伪循环链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值