![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《数据结构与算法之美》笔记
文章平均质量分 75
《数据结构与算法之美》
皮皮杨233
这个作者很懒,什么都没留下…
展开
-
《数据结构与算法之美》9讲学习笔记
09讲队列:队列在线程池等有限资源池中的应用 一、什么是队列? 1.先进者先出,这就是典型的“队列”结构。 2.支持两个操作:入队enqueue(),放一个数据到队尾;出队dequeue(),从队头取一个元素。 3.所以,和栈一样,队列也是一种操作受限的线性表。 二、如何实现队列? 1.队列API public interface Queue<T> { public void enqueue(T item); //入队 public T dequeue(); //出队 ...原创 2021-02-05 13:04:07 · 121 阅读 · 0 评论 -
《数据结构与算法之美》8讲学习笔记
08讲栈:如何实现浏览器的前进和后退功能 一、什么是栈? 1.后进者先出,先进者后出,这就是典型的“栈”结构。 2.从栈的操作特性来看,是一种“操作受限”的线性表,只允许在端插入和删除数据。 二、为什么需要栈? 1.栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。 2.但,任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作的风险。 3.所以,当某个数据集合只涉及在某端插入和删除数据,且满足后进者先出,先进者后出的...原创 2021-02-04 16:48:02 · 103 阅读 · 0 评论 -
《数据结构与算法之美》6-7讲学习笔记
如何实现LRU缓存淘汰算法 “数组简单易用,在实现上使用的是连续的内存空间,可以借助 CPU 的缓存机制,预读数组中的数据,所以访问效率更高。而链表在内存中并不是连续存储,所以对 CPU 缓存不友好,没办法有效预读。” 这里的CPU缓存机制指的是什么?为什么就数组更好了? CPU在从内存读取数据的时候,会先把读取到的数据加载到CPU的缓存中。 而CPU每次从内存读取数据并不是只读取那个特定要访问的地址,而是读取一个数据块,并保存到CPU缓存中,然后下次访问内存数据的时候就会先从CPU缓存开始查找,如原创 2021-02-03 19:23:16 · 78 阅读 · 0 评论