目录
链表结构与定义:
定义:
链表一般分为单链表和双向链表,而单链表一把的结构是无哨兵位单向链表,而双向链表一般是带哨兵位的双向链表。
结构:
单链表结构简单一般不作为存储数据,单链表一般是作为其他结构的子结构。例如哈希表、图等。
带头双向链表结构复杂,一般都是使用带头双向链表存储数据。
//单链表的结构定义
typedef struct ListNode
{
int data;
struct ListNode *next;
}SListNode;
//带头双向链表的结构定义
typedef struct ListNode
{
int data;
struct ListNode *prev;
struct ListNode *next;
}SListNode;
顺序表与链表的区别:
顺序表的优点:
物理地址的连续、支持随机访问O(1)、高速缓存命中率高。
顺序表的缺点:
插入数据复杂O(n)、空间不够要动态开辟空间。
链表的优点:
插入数据方便O(1)、不需要动态开辟空间。
链表的缺点:
地址不是连续的、高速缓存命中率低。