链表学习总结

本文主要探讨了四种链表类型:单链表、单循环链表、双向链表和双向循环链表。详细阐述了每种链表的结构特点、初始化、插入和删除操作。单链表和双向链表分别通过next域连接结点,而循环链表在末尾形成环状。双向链表通过next和prior域实现双向导航。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单链表(具体实现在上两篇博客)

1、单链表就是通过每个结点的指针指向下一个结点从而连接起来的结构,单链表示意图如下:

2、单链表的初始化:(构造函数部分)

3、单链表插入结点:通过指定的位置pos进行结点的插入(当pos为0的时候,头插;当pos为链表长度减1的时候,为尾插。)

4、单链表删除结点的过程:同结点的插入过程。

单循环链表

1、单循环链表与单链表有点相似的地方,就是通过结点的next域指向下一个结点,然后这样链接起来的。但是 惟一的不同就是:单链表的最后一个结点的next域指向NULL,而单循环链表的最后一个结点指向头结点,下面是单循环链表的示意图:

2、单循环链表的初始化:从上面的示意图可以知道,单循环链表的最后一个结点的next域指向头结点,那么当只有一个结点的时候就是头结点,也就是自己指向自己。

3、单循环链表插入结点:这个时候往链表中插入结点,因为链表已经是个环,所以直接让新插入节点的next域指向下一个结点就可以了,就算插入的是最后一个位置,让它指向下一个结点也符合条件,因为最后一个位置的下一个结点就是头结点。

4、单循环链表删除结点:

双向链表

1、双向链表是指链表中包含两个域(除数据域外),一个next域指向下一个结点,一个prior域指向上一个结点,这样的链表可以通过第一个结点找到最后一个结点,当然也可以通过最后一个结点找到第一个结点,因为它是双向的。双向链表示意图:

2、双向链表的初始化:由于链表的头结点不参与运算,所以头结点的prior域一直指向空。

3、双向链表插入结点:每插入一个结点,都要处理其next域和prior域,新建结点的下一个结点的prior域需要指向这个新建的结点,但是有可能这个新建的结点就已经是最有一个结点了。因此程序当中需要判断插入的结点是否为最后一个结点。

4、双向链表删除结点:

双向循环链表

1、结合单循环链表对双向循环链表就不难理解,其实就是双向链表构成了一个环,双向循环链表示意图:

2、双向循环链表初始化:next域和prior域都指向自身,这是因为prior域要指向上一个结点,next域要指向下一个结点,这个时候就只有一个头结点,所以都指向自身。

3、双向循环链表插入结点:同单循环链表插入结点类似。

4、双向循环链表删除结点:和单向循环链表删除结点类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值