This commit is contained in:
krahets
2023-11-09 05:13:54 +08:00
parent 9a09f9407e
commit 3f666fa676
85 changed files with 619 additions and 610 deletions

View File

@@ -3407,7 +3407,7 @@
<!-- Page content -->
<h1 id="53">5.3 &nbsp; 双向队列<a class="headerlink" href="#53" title="Permanent link">&para;</a></h1>
<p>在队列中,我们仅能在头部删除或在尾部添加元素。如图 5-7 所示,「双向队列 double-ended queue」提供了更高的灵活性允许在头部和尾部执行元素的添加或删除操作。</p>
<p><a class="glightbox" href="../deque.assets/deque_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="双向队列的操作" src="../deque.assets/deque_operations.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/deque_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="双向队列的操作" class="animation-figure" src="../deque.assets/deque_operations.png" /></a></p>
<p align="center"> 图 5-7 &nbsp; 双向队列的操作 </p>
<h2 id="531">5.3.1 &nbsp; 双向队列常用操作<a class="headerlink" href="#531" title="Permanent link">&para;</a></h2>
@@ -3768,19 +3768,19 @@
<div class="tabbed-set tabbed-alternate" data-tabs="2:5"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">LinkedListDeque</label><label for="__tabbed_2_2">pushLast()</label><label for="__tabbed_2_3">pushFirst()</label><label for="__tabbed_2_4">popLast()</label><label for="__tabbed_2_5">popFirst()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/linkedlist_deque.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现双向队列的入队出队操作" src="../deque.assets/linkedlist_deque.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/linkedlist_deque.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现双向队列的入队出队操作" class="animation-figure" src="../deque.assets/linkedlist_deque.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_push_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_push_last" src="../deque.assets/linkedlist_deque_push_last.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_push_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_push_last" class="animation-figure" src="../deque.assets/linkedlist_deque_push_last.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_push_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_push_first" src="../deque.assets/linkedlist_deque_push_first.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_push_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_push_first" class="animation-figure" src="../deque.assets/linkedlist_deque_push_first.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_pop_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_pop_last" src="../deque.assets/linkedlist_deque_pop_last.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_pop_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_pop_last" class="animation-figure" src="../deque.assets/linkedlist_deque_pop_last.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_pop_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_pop_first" src="../deque.assets/linkedlist_deque_pop_first.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/linkedlist_deque_pop_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_deque_pop_first" class="animation-figure" src="../deque.assets/linkedlist_deque_pop_first.png" /></a></p>
</div>
</div>
</div>
@@ -5392,19 +5392,19 @@
<div class="tabbed-set tabbed-alternate" data-tabs="4:5"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><input id="__tabbed_4_3" name="__tabbed_4" type="radio" /><input id="__tabbed_4_4" name="__tabbed_4" type="radio" /><input id="__tabbed_4_5" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">ArrayDeque</label><label for="__tabbed_4_2">pushLast()</label><label for="__tabbed_4_3">pushFirst()</label><label for="__tabbed_4_4">popLast()</label><label for="__tabbed_4_5">popFirst()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/array_deque.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现双向队列的入队出队操作" src="../deque.assets/array_deque.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/array_deque.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现双向队列的入队出队操作" class="animation-figure" src="../deque.assets/array_deque.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/array_deque_push_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_push_last" src="../deque.assets/array_deque_push_last.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/array_deque_push_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_push_last" class="animation-figure" src="../deque.assets/array_deque_push_last.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/array_deque_push_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_push_first" src="../deque.assets/array_deque_push_first.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/array_deque_push_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_push_first" class="animation-figure" src="../deque.assets/array_deque_push_first.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/array_deque_pop_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_pop_last" src="../deque.assets/array_deque_pop_last.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/array_deque_pop_last.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_pop_last" class="animation-figure" src="../deque.assets/array_deque_pop_last.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../deque.assets/array_deque_pop_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_pop_first" src="../deque.assets/array_deque_pop_first.png" /></a></p>
<p><a class="glightbox" href="../deque.assets/array_deque_pop_first.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_deque_pop_first" class="animation-figure" src="../deque.assets/array_deque_pop_first.png" /></a></p>
</div>
</div>
</div>

View File

@@ -3292,7 +3292,7 @@
<!-- Page content -->
<h1 id="5">第 5 章 &nbsp; 栈与队列<a class="headerlink" href="#5" title="Permanent link">&para;</a></h1>
<div class="center-table">
<p><a class="glightbox" href="../assets/covers/chapter_stack_and_queue.jpg" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="栈与队列" src="../assets/covers/chapter_stack_and_queue.jpg" width="600" /></a></p>
<p><a class="glightbox" href="../assets/covers/chapter_stack_and_queue.jpg" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="栈与队列" class="cover-image" src="../assets/covers/chapter_stack_and_queue.jpg" /></a></p>
</div>
<div class="admonition abstract">
<p class="admonition-title">Abstract</p>

View File

@@ -3408,7 +3408,7 @@
<h1 id="52">5.2 &nbsp; 队列<a class="headerlink" href="#52" title="Permanent link">&para;</a></h1>
<p>「队列 queue」是一种遵循先入先出规则的线性数据结构。顾名思义队列模拟了排队现象即新来的人不断加入队列的尾部而位于队列头部的人逐个离开。</p>
<p>如图 5-4 所示,我们将队列的头部称为“队首”,尾部称为“队尾”,将把元素加入队尾的操作称为“入队”,删除队首元素的操作称为“出队”。</p>
<p><a class="glightbox" href="../queue.assets/queue_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="队列的先入先出规则" src="../queue.assets/queue_operations.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/queue_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="队列的先入先出规则" class="animation-figure" src="../queue.assets/queue_operations.png" /></a></p>
<p align="center"> 图 5-4 &nbsp; 队列的先入先出规则 </p>
<h2 id="521">5.2.1 &nbsp; 队列常用操作<a class="headerlink" href="#521" title="Permanent link">&para;</a></h2>
@@ -3717,13 +3717,13 @@
<div class="tabbed-set tabbed-alternate" data-tabs="2:3"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">LinkedListQueue</label><label for="__tabbed_2_2">push()</label><label for="__tabbed_2_3">pop()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/linkedlist_queue.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现队列的入队出队操作" src="../queue.assets/linkedlist_queue.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/linkedlist_queue.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现队列的入队出队操作" class="animation-figure" src="../queue.assets/linkedlist_queue.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/linkedlist_queue_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_queue_push" src="../queue.assets/linkedlist_queue_push.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/linkedlist_queue_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_queue_push" class="animation-figure" src="../queue.assets/linkedlist_queue_push.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/linkedlist_queue_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_queue_pop" src="../queue.assets/linkedlist_queue_pop.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/linkedlist_queue_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_queue_pop" class="animation-figure" src="../queue.assets/linkedlist_queue_pop.png" /></a></p>
</div>
</div>
</div>
@@ -4587,13 +4587,13 @@
<div class="tabbed-set tabbed-alternate" data-tabs="4:3"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><input id="__tabbed_4_3" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">ArrayQueue</label><label for="__tabbed_4_2">push()</label><label for="__tabbed_4_3">pop()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/array_queue.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现队列的入队出队操作" src="../queue.assets/array_queue.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/array_queue.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现队列的入队出队操作" class="animation-figure" src="../queue.assets/array_queue.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/array_queue_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_queue_push" src="../queue.assets/array_queue_push.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/array_queue_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_queue_push" class="animation-figure" src="../queue.assets/array_queue_push.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../queue.assets/array_queue_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_queue_pop" src="../queue.assets/array_queue_pop.png" /></a></p>
<p><a class="glightbox" href="../queue.assets/array_queue_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_queue_pop" class="animation-figure" src="../queue.assets/array_queue_pop.png" /></a></p>
</div>
</div>
</div>

View File

@@ -3423,7 +3423,7 @@
<p>「栈 stack」是一种遵循先入后出的逻辑的线性数据结构。</p>
<p>我们可以将栈类比为桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。我们将盘子替换为各种类型的元素(如整数、字符、对象等),就得到了栈数据结构。</p>
<p>如图 5-1 所示,我们把堆叠元素的顶部称为“栈顶”,底部称为“栈底”。将把元素添加到栈顶的操作叫做“入栈”,删除栈顶元素的操作叫做“出栈”。</p>
<p><a class="glightbox" href="../stack.assets/stack_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="栈的先入后出规则" src="../stack.assets/stack_operations.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/stack_operations.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="栈的先入后出规则" class="animation-figure" src="../stack.assets/stack_operations.png" /></a></p>
<p align="center"> 图 5-1 &nbsp; 栈的先入后出规则 </p>
<h2 id="511">5.1.1 &nbsp; 栈常用操作<a class="headerlink" href="#511" title="Permanent link">&para;</a></h2>
@@ -3728,13 +3728,13 @@
<div class="tabbed-set tabbed-alternate" data-tabs="2:3"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">LinkedListStack</label><label for="__tabbed_2_2">push()</label><label for="__tabbed_2_3">pop()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/linkedlist_stack.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现栈的入栈出栈操作" src="../stack.assets/linkedlist_stack.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/linkedlist_stack.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于链表实现栈的入栈出栈操作" class="animation-figure" src="../stack.assets/linkedlist_stack.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/linkedlist_stack_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_stack_push" src="../stack.assets/linkedlist_stack_push.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/linkedlist_stack_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_stack_push" class="animation-figure" src="../stack.assets/linkedlist_stack_push.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/linkedlist_stack_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_stack_pop" src="../stack.assets/linkedlist_stack_pop.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/linkedlist_stack_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="linkedlist_stack_pop" class="animation-figure" src="../stack.assets/linkedlist_stack_pop.png" /></a></p>
</div>
</div>
</div>
@@ -4473,13 +4473,13 @@
<div class="tabbed-set tabbed-alternate" data-tabs="4:3"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><input id="__tabbed_4_3" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">ArrayStack</label><label for="__tabbed_4_2">push()</label><label for="__tabbed_4_3">pop()</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/array_stack.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现栈的入栈出栈操作" src="../stack.assets/array_stack.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/array_stack.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="基于数组实现栈的入栈出栈操作" class="animation-figure" src="../stack.assets/array_stack.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/array_stack_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_stack_push" src="../stack.assets/array_stack_push.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/array_stack_push.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_stack_push" class="animation-figure" src="../stack.assets/array_stack_push.png" /></a></p>
</div>
<div class="tabbed-block">
<p><a class="glightbox" href="../stack.assets/array_stack_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_stack_pop" src="../stack.assets/array_stack_pop.png" /></a></p>
<p><a class="glightbox" href="../stack.assets/array_stack_pop.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="array_stack_pop" class="animation-figure" src="../stack.assets/array_stack_pop.png" /></a></p>
</div>
</div>
</div>