一、链表
为解决顺序表的缺陷,而产生了链表,链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
实现链表的结构非常多样,以下情况组合起来就有8种链表结构:
1、单向/双向
2、带头/不带头
3、循环/非循环
虽然有这么多的链表结构,但是实际中只需要重点掌握两种结构:
Ⅰ、无头单向非循环链表,结构简单,但一般不会单独用来存储数据,实际中更多是作为其他数据结构的子结构。
Ⅱ 、带头双向循环链表,结构最复杂,一般都可以单独存储数据,实际中使用的链表数据结构都是带头双向循环链表。
纯C单链表的实现:
结构:
typedef int SLDatatype;
typedef struct SList
{
SLDatatype x;
struct SList* next;
}SList;
动态申请新节点:
// 动态申请一个节点
SListNode* BuySListNo