Hello 算法 1.1.0 Dart版双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 第 5 章 栈与队列 hello‑algo.com 96 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧ 。在时间效率和空间效率 的对比上,队列的结论与前述栈的结论相似。 ‧ 双向队列是一种具有更高自由度的队列,它允许在两端进行元素的添加和删除操作。 2. Q & A Q:浏览器的前进后退是否是双向链表实现? 浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到栈顶;当用户 点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便地实现一些额外操作,这个在“双向队列”0 码力 | 378 页 | 18.45 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Dart 版双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 第 5 章 栈与队列 www.hello‑algo.com 96 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧ 。在时间效率和空间效率 的对比上,队列的结论与前述栈的结论相似。 ‧ 双向队列是一种具有更高自由度的队列,它允许在两端进行元素的添加和删除操作。 2. Q & A Q:浏览器的前进后退是否是双向链表实现? 浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到栈顶;当用户 点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便地实现一些额外操作,这个在“双向队列”0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.0.0b5 Dart版双向链表常被用于需要快速查找前一个和下一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰算法(LRU)中,我们需要快速找到最近最少使用的数据,以及支持快速地添 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 5.1.4 栈典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会将上一个网页执 行入栈,这样我们就可以通过后退操作回到上一页面。后退操作实际上是在执行出栈。如果要同时支持 后退和前进,那么需要两个栈来配合实现。 ‧ 程 的对比上,队列的结论与前述栈的结论相似。 ‧ 双向队列是一种具有更高自由度的队列,它允许在两端进行元素的添加和删除操作。 第 5 章 栈与队列 hello‑algo.com 106 2. Q & A � 浏览器的前进后退是否是双向链表实现? 浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到 栈顶;当用户点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便实现一些额外操 作,这个在双向队列章节有提到。0 码力 | 376 页 | 30.67 MB | 1 年前3
Hello 算法 1.0.0 Dart版双向链表常用于需要快速查找前一个和后一个元素的场景。 ‧ 高级数据结构:比如在红黑树、B 树中,我们需要访问节点的父节点,这可以通过在节点中保存一个指 向父节点的引用来实现,类似于双向链表。 ‧ 浏览器历史:在网页浏览器中,当用户点击前进或后退按钮时,浏览器需要知道用户访问过的前一个和 后一个网页。双向链表的特性使得这种操作变得简单。 ‧ LRU 算法:在缓存淘汰(LRU)算法中,我们需要快速找到最近最少使用的数据,以及支持快速添加 综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。 第 5 章 栈与队列 hello‑algo.com 96 5.1.4 栈的典型应用 ‧ 浏览器中的后退与前进、软件中的撤销与反撤销。每当我们打开新的网页,浏览器就会对上一个网页执 行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支 持后退和前进,那么需要两个栈来配合实现。 ‧ 。在时间效率和空间效率 的对比上,队列的结论与前述栈的结论相似。 ‧ 双向队列是一种具有更高自由度的队列,它允许在两端进行元素的添加和删除操作。 2. Q & A Q:浏览器的前进后退是否是双向链表实现? 浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到栈顶;当用户 点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便地实现一些额外操作,这个在“双向队列”0 码力 | 377 页 | 17.56 MB | 1 年前3
共 4 条
- 1













