<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p>
讯享网
🔥 博客主页: 偷心编程
🎥 系列专栏: 《Java学习》 《C语言学习》 《数据结构C语言版》
❤️ 感谢大家点赞👍收藏⭐评论✍️

讯享网

链表也是线性表的一种,特点是:物理上不连续,逻辑上连续。

1. 单向或者双向

2. 带头或者不带头

3. 循环或者非循环

当然了我们最常用的还是下面两种结构:

讯享网
- 处理一般的单链表(链表不为空)
讯享网
- 考虑链表为空的情况
错误示范
正确示范
讯享网
- 可以跟尾插一样,分类讨论
- 也可以合并
讯享网
- 分类讨论
讯享网
- 合并
讯享网
- 给的pos是int
- 给的pos是一个指针
讯享网
- 给的pos是int
- 给的pos是一个指针
讯享网
讯享网
若是涉及到我们需要改变头节点,也就是要改变head指针的内容的时候,我们就要传入二级指针(涉及到“头”的改变就要传二级指针)
- 链表为空链表或者非空链表
- 单链表只能由前一个节点得到下一个节点,因此在增 、删的时候prev节点很重要。由于这个特性,我们常常要就处理第一个节点的时候进行讨论(没有prev节点,这时候直接改变头结点)
我们在处理问题的时候,无论是单链表还是双向链表,我们总是先改变外部结构(新创建的节点里面的数据),然后再改变我们原本的内部结构(改变链表内部节点的next指向或者数据等等)


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/138302.html