This commit is contained in:
krahets
2023-08-29 20:57:26 +08:00
parent 6ae6c480e0
commit 8c4d24795c
32 changed files with 574 additions and 278 deletions

View File

@@ -1173,8 +1173,15 @@
<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 href="#1" class="md-nav__link">
1. &nbsp; 重点回顾
</a>
</li>
<li class="md-nav__item">
<a href="#2-q-a" class="md-nav__link">
2. &nbsp; Q &amp; A
</a>
</li>
@@ -3398,8 +3405,15 @@
<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 href="#1" class="md-nav__link">
1. &nbsp; 重点回顾
</a>
</li>
<li class="md-nav__item">
<a href="#2-q-a" class="md-nav__link">
2. &nbsp; Q &amp; A
</a>
</li>
@@ -3428,6 +3442,7 @@
<h1 id="54">5.4 &nbsp; 小结<a class="headerlink" href="#54" title="Permanent link">&para;</a></h1>
<h3 id="1">1. &nbsp; 重点回顾<a class="headerlink" href="#1" title="Permanent link">&para;</a></h3>
<ul>
<li>栈是一种遵循先入后出原则的数据结构,可通过数组或链表来实现。</li>
<li>从时间效率角度看,栈的数组实现具有较高的平均效率,但在扩容过程中,单次入栈操作的时间复杂度会降低至 <span class="arithmatex">\(O(n)\)</span> 。相比之下,基于链表实现的栈具有更为稳定的效率表现。</li>
@@ -3435,7 +3450,7 @@
<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>
<h3 id="2-q-a">2. &nbsp; Q &amp; A<a class="headerlink" href="#2-q-a" title="Permanent link">&para;</a></h3>
<div class="admonition question">
<p class="admonition-title">浏览器的前进后退是否是双向链表实现?</p>
<p>浏览器的前进后退功能本质上是“栈”的体现。当用户访问一个新页面时,该页面会被添加到栈顶;当用户点击后退按钮时,该页面会从栈顶弹出。使用双向队列可以方便实现一些额外操作,这个在双向队列章节有提到。</p>