This commit is contained in:
krahets
2023-06-12 23:05:10 +08:00
parent fc1707df0b
commit 6eabe4597f
91 changed files with 3965 additions and 249 deletions

View File

@ -917,10 +917,41 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
5.4. &nbsp; 小结
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
5.4. &nbsp; 小结
</a>
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#541-q-a" class="md-nav__link">
5.4.1. &nbsp; Q &amp; A
</a>
</li>
</ul>
</nav>
</li>
@ -1207,6 +1238,8 @@
@ -1250,7 +1283,21 @@
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
8.2. &nbsp; 建堆操作 *
8.2. &nbsp; 建堆操作
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_heap/top_k/" class="md-nav__link">
8.3. &nbsp; Top-K 问题
</a>
</li>
@ -1264,7 +1311,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
8.3. &nbsp; 小结
8.4. &nbsp; 小结
</a>
</li>
@ -1987,6 +2034,21 @@
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#541-q-a" class="md-nav__link">
5.4.1. &nbsp; Q &amp; A
</a>
</li>
</ul>
</nav>
</div>
</div>
@ -2016,6 +2078,19 @@
<li>队列是一种遵循先入先出原则的数据结构,同样可以通过数组或链表来实现。在时间效率和空间效率的对比上,队列的结论与前述栈的结论相似。</li>
<li>双向队列是一种具有更高自由度的队列,它允许在两端进行元素的添加和删除操作。</li>
</ul>
<h2 id="541-q-a">5.4.1. &nbsp; Q &amp; A<a class="headerlink" href="#541-q-a" title="Permanent link">&para;</a></h2>
<div class="admonition question">
<p class="admonition-title">浏览器的前进后退是否是双向链表实现?</p>
<p>浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到栈顶;当用户点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便实现一些额外操作,这个在双向队列章节有提到。</p>
</div>
<div class="admonition question">
<p class="admonition-title">在出栈后,是否需要释放出栈节点的内存?</p>
<p>如果后续仍需要使用弹出节点,则不需要释放内存。若之后不需要用到,<code>Java</code><code>Python</code> 等语言拥有自动垃圾回收机制,因此不需要手动释放内存;在 <code>C</code><code>C++</code> 中需要手动释放内存。</p>
</div>
<div class="admonition question">
<p class="admonition-title">双向队列像是两个栈拼接在了一起,它的用途是什么?</p>
<p>双向队列就像是栈和队列的组合,或者是两个栈拼在了一起。它表现的是栈 + 队列的逻辑,因此可以实现栈与队列的所有应用,并且更加灵活。</p>
</div>