
1. 链表的分类
链表有多种分类,单链表是结构最简单的链表之一,但使用较为繁琐。根据是否带头、单向或双向、循环或非循环,链表可分为多种结构。我们重点讲解两种极端情况:无头单向非循环链表(结构最简单,使用最麻烦)和带头双向循环链表(结构最复杂,使用最简单)。掌握这两种链表后,其他链表的使用将游刃有余。
无头单向非循环链表(单链表):

带头双向循环链表:

2. 带头双向循环链表
下面对带头双向循环链表的相关接口进行实现。
接口声明
首先定义头文件,包含结构体声明和各种接口:
typedef int LTDataType;
typedef struct ListNode {
struct ListNode* prev;
struct ListNode* next;
LTDataType data;
} ListNode;
// 创建返回链表的头结点
ListNode* ListCreate();
// 创建一个新节点
ListNode* BuyListNode();
// 双向链表销毁
void ListDestory(ListNode* plist);
// 双向链表打印
void ListPrint(ListNode* plist);
;
;
;
;
ListNode* ;
;
;


