数据结构与算法4-链表(上)

链表(上)

经典的链表应用场景,就是LRU缓存淘汰算法
数据结构与算法4-链表(上)
数据结构与算法4-链表(上)

1.单链表

数据结构与算法4-链表(上)
只要是链表,其插入和删除数据均为O(1)
数据结构与算法4-链表(上)

2.循环链表

数据结构与算法4-链表(上)

3.双向链表

数据结构与算法4-链表(上)
注意:链表的插入、删除时间复杂度均为O(1),这里双向链表的优点在于O(1)时间复杂度找前驱结点!O(1)时间复杂度找前驱结点!O(1)时间复杂度找前驱结点!

4.对双向链表的实际开发分析

数据结构与算法4-链表(上)
数据结构与算法4-链表(上)

5.双向循环链表

数据结构与算法4-链表(上)

6.链表与数组性能比较

数据结构与算法4-链表(上)
数据结构与算法4-链表(上)

7.如何基于链表实现LRU缓存淘汰算法

数据结构与算法4-链表(上)

8.如何利用数组实现LRU缓存淘汰策略

数据结构与算法4-链表(上)
假设数组大一点,即缓存大一点,组头为旧进程,组尾为新进程。那么加入新缓存的话,在组尾插入 时间复杂度为O(1)。缓存未满的话,如果缓存中没有该进程则append,如果有该进程找搜索删掉再append;缓存满了的话,如果未有扩组再append,如果有已有,则搜索删掉再append。