【数据结构】双向链表

双向链表的相关知识

1.头节点

也叫哨兵位,此节点里面存放的数据无效不用的但存放的指针依旧是有用的


2.链表的特点

单链表:没有头节点单向不循环

双向链表:有头节点双向循环 (如图)


3.节点的结构


4.节点的开辟内存创建


node->next = node->prev = node:

  • 双向链表是双向循环的,所以里面创建申请的单位基本节点是双向自循环的
  • (单链表是单向不循环的,所以里面的单位基本节点里面:next->NULL)

双向链表的实现

一、初始化

双向链表的初始化即把空的双向链表创建出一个最初的头节点哨兵位此时头节点不存放有效数据且指针自己指向自己


二、尾插

1.修改时,我们先修改新插入的节点里的指针(prev、next),再修改phead->prev节点的指针(next),再修改phead节点里的指针(prev),即新节点里的前后指针->尾节点的后指针->头节点的前指针

2.哨兵位的下一个节点是第一个有效的节点,哨兵位的前一个节点是最后一个有效的节点

尾插是将节点插到哨兵位的前面

头插是将节点插到哨兵位的后面


三、头插


四、节点查找


五、指定节点之后插入节点


六、尾删


七、头删


八、指定节点删除


九、数据打印


十、销毁

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值