双链表

对于单链表或循环链表,从表头结点开始扫描,可以遍历到链表中的每个结点,而循环链表可以从任何结点出发对各个结点进行遍历。但它们都有一个共同的缺陷,就是无法快速地访问结点的前驱。例如,为了删除结点p,必须首先找到p的前驱结点,这需要从表头开始查找链表,直到某个结点q的后继等于p,q即p的前驱,显然,这是极不方便的。

为了支持双向快速访问结点,引入了双向链表的概念。在双向链表中,每个结点含有两个指针域和一个数据域。

通过两个指针域,多个双链结点可构成两个循环链,建立了一种灵活、有效的动态表结构,称为双向循环链表,简称双链表。

在双链表中插入一个结点时,涉及插入点前一结点的next指针、插入点后一结点的prev指针以及被插入结点的两个指针的修改。

从双链表中删除一个结点的过程,只需修改前一结点的next指针和后一结点的prev指针即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值