链表简介·不需要担心空间不够·循环链表最后一个结点指向第一个结点形成环
作者:网络发烧程序猿 |
发布时间:2025-06-20 |
链表简介
链表是一种很常见的数据结构,有点像我们用链子连起来的小珠子。珠子可以是散落在不同位置上的,但通过链子(也就是指针)连接起来,就能按顺序访问它们了。
链表的特点
特点 |
描述 |
插入删除效率高 |
在任意位置插入或删除珠子,几乎瞬间就能完成,时间复杂度是O(1)。 |
灵活度高 |
珠子可以随时增加或减少,不需要担心空间不够。 |
空间分散 |
珠子可以放在任何位置,不需要连续排列。 |
查找效率低 |
要找到某个珠子,可能需要从头到尾逐个检查,时间复杂度是O(N)。 |
空间利用率高 |
只需要根据需要分配空间,空间利用率很高。 |
链表的结构
链表由一个个结点组成,每个结点有两个部分:一个是存放数据的区域,另一个是存放下一个结点位置的指针。
链表的类型
- 单链表:每个结点只指向下一个结点。
- 循环链表:最后一个结点指向第一个结点,形成环。
- 双向链表:每个结点有两个指针,一个指向前一个结点,一个指向下一个结点。
- 双向循环链表:结合了双向链表和循环链表的特点。
链表的应用
链表非常适合需要频繁插入和删除的场景,比如任务队列或者电话簿。
设置头结点的优势
使用头结点可以让处理首元结点(第一个珠子)更加方便,同时也能统一空表和非空表的处理方式。