mirror of
https://github.com/krahets/hello-algo.git
synced 2026-06-10 06:15:46 +08:00
deploy
This commit is contained in:
@@ -3407,7 +3407,7 @@
|
||||
<!-- Page content -->
|
||||
<h1 id="53">5.3 双向队列<a class="headerlink" href="#53" title="Permanent link">¶</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 双向队列的操作 </p>
|
||||
|
||||
<h2 id="531">5.3.1 双向队列常用操作<a class="headerlink" href="#531" title="Permanent link">¶</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>
|
||||
|
||||
@@ -3292,7 +3292,7 @@
|
||||
<!-- Page content -->
|
||||
<h1 id="5">第 5 章 栈与队列<a class="headerlink" href="#5" title="Permanent link">¶</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>
|
||||
|
||||
@@ -3408,7 +3408,7 @@
|
||||
<h1 id="52">5.2 队列<a class="headerlink" href="#52" title="Permanent link">¶</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 队列的先入先出规则 </p>
|
||||
|
||||
<h2 id="521">5.2.1 队列常用操作<a class="headerlink" href="#521" title="Permanent link">¶</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>
|
||||
|
||||
@@ -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 栈的先入后出规则 </p>
|
||||
|
||||
<h2 id="511">5.1.1 栈常用操作<a class="headerlink" href="#511" title="Permanent link">¶</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>
|
||||
|
||||
Reference in New Issue
Block a user