带头双向循环链表优越性及实现增删查改

单链表的缺陷

在各个单链表中都有各自不同的缺陷:

  1. 在尾部插入或删除数据时间复杂度为O(N),效率低下;
  2. 在pos位置前插入、删除数据时间复杂度为O(N),效率低;
  3. 进行插入或删除数据时,可能会改变头节点,所以需要用到二级指针,比较麻烦。

那么有没有比较完美的链表呢?

当然有→带头+双向+循环链表,完美解决单链表不同缺陷。

带头双向循环链表

 带头双向循环链表指的是:具有哨兵位头结点、每个节点中都存储了后一个节点和前一个节点的地址、头结点存储了尾结点的地址、尾结点存储了头结点地址,这样的一种结构的链表。

虽然它的结构看起来复杂,但是在链表中却是最简单效率最高的一种。

带头双向循环链表的实现

1.节点结构

比较单链表而言,带头双向循环链表多出一个prev指针,指向前一个节点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值