2.1.1 线性关系 2.3.1 内存布局 2.3.2 操作模拟 2.3.3 复杂度 2.4.1 结点结构 2.4.2 链表操作 2.4.3 循环/双向 2.4.4 头结点 2.4.5 经典算法 2.5 多维对比 2.6.1 二路归并 2.6.2 多项式相加
🎮
控制面板
就绪:选择操作观察三种链表的差异
📊
三栏对比

单链表

尾结点next为NULL
只能单向遍历

循环链表

尾结点next指向头结点
可从任意结点遍历全部

双向链表

每个结点有prior和next
可双向遍历

📋
结构定义对比
// 单链表 typedef struct LNode { ElemType data; struct LNode *next; } LNode;
// 循环链表 typedef struct LNode { ElemType data; struct LNode *next; } LNode; // 尾->next = 头
// 双向链表 typedef struct DNode { ElemType data; struct DNode *prior; struct DNode *next; } DNode;