This commit is contained in:
krahets 2023-06-06 01:56:03 +08:00
parent bd79168c48
commit fc1707df0b
4 changed files with 151 additions and 155 deletions

View File

@ -4593,85 +4593,81 @@
<a id="__codelineno-28-39" name="__codelineno-28-39" href="#__codelineno-28-39"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a id="__codelineno-28-40" name="__codelineno-28-40" href="#__codelineno-28-40"></a><span class="p">}</span>
<a id="__codelineno-28-41" name="__codelineno-28-41" href="#__codelineno-28-41"></a>
<a id="__codelineno-28-42" name="__codelineno-28-42" href="#__codelineno-28-42"></a><span class="cm">/* 判断双向队列是否为空 */</span>
<a id="__codelineno-28-43" name="__codelineno-28-43" href="#__codelineno-28-43"></a><span class="kt">bool</span><span class="w"> </span><span class="nf">empty</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-44" name="__codelineno-28-44" href="#__codelineno-28-44"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a id="__codelineno-28-45" name="__codelineno-28-45" href="#__codelineno-28-45"></a><span class="p">}</span>
<a id="__codelineno-28-46" name="__codelineno-28-46" href="#__codelineno-28-46"></a>
<a id="__codelineno-28-47" name="__codelineno-28-47" href="#__codelineno-28-47"></a><span class="kt">int</span><span class="w"> </span><span class="nf">dequeIndex</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-48" name="__codelineno-28-48" href="#__codelineno-28-48"></a><span class="w"> </span><span class="c1">// 通过取余操作实现数组首尾相连</span>
<a id="__codelineno-28-49" name="__codelineno-28-49" href="#__codelineno-28-49"></a><span class="w"> </span><span class="c1">// 当 i 越过数组尾部时,回到头部</span>
<a id="__codelineno-28-50" name="__codelineno-28-50" href="#__codelineno-28-50"></a><span class="w"> </span><span class="c1">// 当 i 越过数组头部后,回到尾部</span>
<a id="__codelineno-28-51" name="__codelineno-28-51" href="#__codelineno-28-51"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">((</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">));</span>
<a id="__codelineno-28-52" name="__codelineno-28-52" href="#__codelineno-28-52"></a><span class="p">}</span>
<a id="__codelineno-28-53" name="__codelineno-28-53" href="#__codelineno-28-53"></a>
<a id="__codelineno-28-54" name="__codelineno-28-54" href="#__codelineno-28-54"></a><span class="cm">/* 队首入队 */</span>
<a id="__codelineno-28-55" name="__codelineno-28-55" href="#__codelineno-28-55"></a><span class="kt">void</span><span class="w"> </span><span class="nf">pushFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-56" name="__codelineno-28-56" href="#__codelineno-28-56"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-57" name="__codelineno-28-57" href="#__codelineno-28-57"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;双向队列已满</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<a id="__codelineno-28-58" name="__codelineno-28-58" href="#__codelineno-28-58"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-28-59" name="__codelineno-28-59" href="#__codelineno-28-59"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-60" name="__codelineno-28-60" href="#__codelineno-28-60"></a><span class="w"> </span><span class="c1">// 队首指针向左移动一位</span>
<a id="__codelineno-28-61" name="__codelineno-28-61" href="#__codelineno-28-61"></a><span class="w"> </span><span class="c1">// 通过取余操作,实现 front 越过数组头部回到尾部</span>
<a id="__codelineno-28-62" name="__codelineno-28-62" href="#__codelineno-28-62"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-63" name="__codelineno-28-63" href="#__codelineno-28-63"></a><span class="w"> </span><span class="c1">// 将 num 添加到队首</span>
<a id="__codelineno-28-64" name="__codelineno-28-64" href="#__codelineno-28-64"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-65" name="__codelineno-28-65" href="#__codelineno-28-65"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-28-66" name="__codelineno-28-66" href="#__codelineno-28-66"></a><span class="p">}</span>
<a id="__codelineno-28-67" name="__codelineno-28-67" href="#__codelineno-28-67"></a>
<a id="__codelineno-28-68" name="__codelineno-28-68" href="#__codelineno-28-68"></a><span class="cm">/* 队尾入队 */</span>
<a id="__codelineno-28-69" name="__codelineno-28-69" href="#__codelineno-28-69"></a><span class="kt">void</span><span class="w"> </span><span class="nf">pushLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-70" name="__codelineno-28-70" href="#__codelineno-28-70"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-71" name="__codelineno-28-71" href="#__codelineno-28-71"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;双向队列已满</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<a id="__codelineno-28-72" name="__codelineno-28-72" href="#__codelineno-28-72"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-28-73" name="__codelineno-28-73" href="#__codelineno-28-73"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-74" name="__codelineno-28-74" href="#__codelineno-28-74"></a><span class="w"> </span><span class="c1">// 计算尾指针,指向队尾索引 + 1</span>
<a id="__codelineno-28-75" name="__codelineno-28-75" href="#__codelineno-28-75"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rear</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">);</span>
<a id="__codelineno-28-76" name="__codelineno-28-76" href="#__codelineno-28-76"></a><span class="w"> </span><span class="c1">// 将 num 添加至队尾</span>
<a id="__codelineno-28-77" name="__codelineno-28-77" href="#__codelineno-28-77"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">rear</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-78" name="__codelineno-28-78" href="#__codelineno-28-78"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-28-79" name="__codelineno-28-79" href="#__codelineno-28-79"></a><span class="p">}</span>
<a id="__codelineno-28-80" name="__codelineno-28-80" href="#__codelineno-28-80"></a>
<a id="__codelineno-28-81" name="__codelineno-28-81" href="#__codelineno-28-81"></a><span class="cm">/* 访问队首元素 */</span>
<a id="__codelineno-28-82" name="__codelineno-28-82" href="#__codelineno-28-82"></a><span class="kt">int</span><span class="w"> </span><span class="nf">peekFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-83" name="__codelineno-28-83" href="#__codelineno-28-83"></a><span class="w"> </span><span class="c1">// 访问异常:双向队列为空</span>
<a id="__codelineno-28-84" name="__codelineno-28-84" href="#__codelineno-28-84"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">empty</span><span class="p">(</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a id="__codelineno-28-85" name="__codelineno-28-85" href="#__codelineno-28-85"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">];</span>
<a id="__codelineno-28-86" name="__codelineno-28-86" href="#__codelineno-28-86"></a><span class="p">}</span>
<a id="__codelineno-28-87" name="__codelineno-28-87" href="#__codelineno-28-87"></a>
<a id="__codelineno-28-88" name="__codelineno-28-88" href="#__codelineno-28-88"></a><span class="cm">/* 访问队尾元素 */</span>
<a id="__codelineno-28-89" name="__codelineno-28-89" href="#__codelineno-28-89"></a><span class="kt">int</span><span class="w"> </span><span class="nf">peekLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-90" name="__codelineno-28-90" href="#__codelineno-28-90"></a><span class="w"> </span><span class="c1">// 访问异常:双向队列为空</span>
<a id="__codelineno-28-91" name="__codelineno-28-91" href="#__codelineno-28-91"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">empty</span><span class="p">(</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a id="__codelineno-28-92" name="__codelineno-28-92" href="#__codelineno-28-92"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-93" name="__codelineno-28-93" href="#__codelineno-28-93"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">last</span><span class="p">];</span>
<a id="__codelineno-28-94" name="__codelineno-28-94" href="#__codelineno-28-94"></a><span class="p">}</span>
<a id="__codelineno-28-95" name="__codelineno-28-95" href="#__codelineno-28-95"></a>
<a id="__codelineno-28-96" name="__codelineno-28-96" href="#__codelineno-28-96"></a><span class="cm">/* 队首出队 */</span>
<a id="__codelineno-28-97" name="__codelineno-28-97" href="#__codelineno-28-97"></a><span class="kt">int</span><span class="w"> </span><span class="nf">popFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-98" name="__codelineno-28-98" href="#__codelineno-28-98"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">peekFirst</span><span class="p">(</span><span class="n">deque</span><span class="p">);</span>
<a id="__codelineno-28-99" name="__codelineno-28-99" href="#__codelineno-28-99"></a><span class="w"> </span><span class="c1">// 队首指针向后移动一位</span>
<a id="__codelineno-28-100" name="__codelineno-28-100" href="#__codelineno-28-100"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-101" name="__codelineno-28-101" href="#__codelineno-28-101"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-28-102" name="__codelineno-28-102" href="#__codelineno-28-102"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-103" name="__codelineno-28-103" href="#__codelineno-28-103"></a><span class="p">}</span>
<a id="__codelineno-28-104" name="__codelineno-28-104" href="#__codelineno-28-104"></a>
<a id="__codelineno-28-105" name="__codelineno-28-105" href="#__codelineno-28-105"></a><span class="cm">/* 队尾出队 */</span>
<a id="__codelineno-28-106" name="__codelineno-28-106" href="#__codelineno-28-106"></a><span class="kt">int</span><span class="w"> </span><span class="nf">popLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-107" name="__codelineno-28-107" href="#__codelineno-28-107"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">peekLast</span><span class="p">(</span><span class="n">deque</span><span class="p">);</span>
<a id="__codelineno-28-108" name="__codelineno-28-108" href="#__codelineno-28-108"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-28-109" name="__codelineno-28-109" href="#__codelineno-28-109"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-110" name="__codelineno-28-110" href="#__codelineno-28-110"></a><span class="p">}</span>
<a id="__codelineno-28-111" name="__codelineno-28-111" href="#__codelineno-28-111"></a>
<a id="__codelineno-28-112" name="__codelineno-28-112" href="#__codelineno-28-112"></a><span class="cm">/* 打印队列 */</span>
<a id="__codelineno-28-113" name="__codelineno-28-113" href="#__codelineno-28-113"></a><span class="kt">void</span><span class="w"> </span><span class="nf">printArrayDeque</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-114" name="__codelineno-28-114" href="#__codelineno-28-114"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">arr</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">];</span>
<a id="__codelineno-28-115" name="__codelineno-28-115" href="#__codelineno-28-115"></a><span class="w"> </span><span class="c1">// 拷贝</span>
<a id="__codelineno-28-116" name="__codelineno-28-116" href="#__codelineno-28-116"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-117" name="__codelineno-28-117" href="#__codelineno-28-117"></a><span class="w"> </span><span class="n">arr</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queCapacity</span><span class="p">];</span>
<a id="__codelineno-28-118" name="__codelineno-28-118" href="#__codelineno-28-118"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-119" name="__codelineno-28-119" href="#__codelineno-28-119"></a><span class="w"> </span><span class="n">printArray</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">);</span>
<a id="__codelineno-28-120" name="__codelineno-28-120" href="#__codelineno-28-120"></a><span class="p">}</span>
<a id="__codelineno-28-42" name="__codelineno-28-42" href="#__codelineno-28-42"></a><span class="cm">/* 计算环形数组索引 */</span>
<a id="__codelineno-28-43" name="__codelineno-28-43" href="#__codelineno-28-43"></a><span class="kt">int</span><span class="w"> </span><span class="nf">dequeIndex</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-44" name="__codelineno-28-44" href="#__codelineno-28-44"></a><span class="w"> </span><span class="c1">// 通过取余操作实现数组首尾相连</span>
<a id="__codelineno-28-45" name="__codelineno-28-45" href="#__codelineno-28-45"></a><span class="w"> </span><span class="c1">// 当 i 越过数组尾部时,回到头部</span>
<a id="__codelineno-28-46" name="__codelineno-28-46" href="#__codelineno-28-46"></a><span class="w"> </span><span class="c1">// 当 i 越过数组头部后,回到尾部</span>
<a id="__codelineno-28-47" name="__codelineno-28-47" href="#__codelineno-28-47"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">((</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">));</span>
<a id="__codelineno-28-48" name="__codelineno-28-48" href="#__codelineno-28-48"></a><span class="p">}</span>
<a id="__codelineno-28-49" name="__codelineno-28-49" href="#__codelineno-28-49"></a>
<a id="__codelineno-28-50" name="__codelineno-28-50" href="#__codelineno-28-50"></a><span class="cm">/* 队首入队 */</span>
<a id="__codelineno-28-51" name="__codelineno-28-51" href="#__codelineno-28-51"></a><span class="kt">void</span><span class="w"> </span><span class="nf">pushFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-52" name="__codelineno-28-52" href="#__codelineno-28-52"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-53" name="__codelineno-28-53" href="#__codelineno-28-53"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;双向队列已满</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<a id="__codelineno-28-54" name="__codelineno-28-54" href="#__codelineno-28-54"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-28-55" name="__codelineno-28-55" href="#__codelineno-28-55"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-56" name="__codelineno-28-56" href="#__codelineno-28-56"></a><span class="w"> </span><span class="c1">// 队首指针向左移动一位</span>
<a id="__codelineno-28-57" name="__codelineno-28-57" href="#__codelineno-28-57"></a><span class="w"> </span><span class="c1">// 通过取余操作,实现 front 越过数组头部回到尾部</span>
<a id="__codelineno-28-58" name="__codelineno-28-58" href="#__codelineno-28-58"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-59" name="__codelineno-28-59" href="#__codelineno-28-59"></a><span class="w"> </span><span class="c1">// 将 num 添加到队首</span>
<a id="__codelineno-28-60" name="__codelineno-28-60" href="#__codelineno-28-60"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-61" name="__codelineno-28-61" href="#__codelineno-28-61"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-28-62" name="__codelineno-28-62" href="#__codelineno-28-62"></a><span class="p">}</span>
<a id="__codelineno-28-63" name="__codelineno-28-63" href="#__codelineno-28-63"></a>
<a id="__codelineno-28-64" name="__codelineno-28-64" href="#__codelineno-28-64"></a><span class="cm">/* 队尾入队 */</span>
<a id="__codelineno-28-65" name="__codelineno-28-65" href="#__codelineno-28-65"></a><span class="kt">void</span><span class="w"> </span><span class="nf">pushLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-66" name="__codelineno-28-66" href="#__codelineno-28-66"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">capacity</span><span class="p">(</span><span class="n">deque</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-67" name="__codelineno-28-67" href="#__codelineno-28-67"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;双向队列已满</span><span class="se">\r\n</span><span class="s">&quot;</span><span class="p">);</span>
<a id="__codelineno-28-68" name="__codelineno-28-68" href="#__codelineno-28-68"></a><span class="w"> </span><span class="k">return</span><span class="p">;</span>
<a id="__codelineno-28-69" name="__codelineno-28-69" href="#__codelineno-28-69"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-70" name="__codelineno-28-70" href="#__codelineno-28-70"></a><span class="w"> </span><span class="c1">// 计算尾指针,指向队尾索引 + 1</span>
<a id="__codelineno-28-71" name="__codelineno-28-71" href="#__codelineno-28-71"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rear</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">);</span>
<a id="__codelineno-28-72" name="__codelineno-28-72" href="#__codelineno-28-72"></a><span class="w"> </span><span class="c1">// 将 num 添加至队尾</span>
<a id="__codelineno-28-73" name="__codelineno-28-73" href="#__codelineno-28-73"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">rear</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-74" name="__codelineno-28-74" href="#__codelineno-28-74"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-28-75" name="__codelineno-28-75" href="#__codelineno-28-75"></a><span class="p">}</span>
<a id="__codelineno-28-76" name="__codelineno-28-76" href="#__codelineno-28-76"></a>
<a id="__codelineno-28-77" name="__codelineno-28-77" href="#__codelineno-28-77"></a><span class="cm">/* 访问队首元素 */</span>
<a id="__codelineno-28-78" name="__codelineno-28-78" href="#__codelineno-28-78"></a><span class="kt">int</span><span class="w"> </span><span class="nf">peekFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-79" name="__codelineno-28-79" href="#__codelineno-28-79"></a><span class="w"> </span><span class="c1">// 访问异常:双向队列为空</span>
<a id="__codelineno-28-80" name="__codelineno-28-80" href="#__codelineno-28-80"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">empty</span><span class="p">(</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a id="__codelineno-28-81" name="__codelineno-28-81" href="#__codelineno-28-81"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">];</span>
<a id="__codelineno-28-82" name="__codelineno-28-82" href="#__codelineno-28-82"></a><span class="p">}</span>
<a id="__codelineno-28-83" name="__codelineno-28-83" href="#__codelineno-28-83"></a>
<a id="__codelineno-28-84" name="__codelineno-28-84" href="#__codelineno-28-84"></a><span class="cm">/* 访问队尾元素 */</span>
<a id="__codelineno-28-85" name="__codelineno-28-85" href="#__codelineno-28-85"></a><span class="kt">int</span><span class="w"> </span><span class="nf">peekLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-86" name="__codelineno-28-86" href="#__codelineno-28-86"></a><span class="w"> </span><span class="c1">// 访问异常:双向队列为空</span>
<a id="__codelineno-28-87" name="__codelineno-28-87" href="#__codelineno-28-87"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">empty</span><span class="p">(</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a id="__codelineno-28-88" name="__codelineno-28-88" href="#__codelineno-28-88"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">last</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-89" name="__codelineno-28-89" href="#__codelineno-28-89"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">last</span><span class="p">];</span>
<a id="__codelineno-28-90" name="__codelineno-28-90" href="#__codelineno-28-90"></a><span class="p">}</span>
<a id="__codelineno-28-91" name="__codelineno-28-91" href="#__codelineno-28-91"></a>
<a id="__codelineno-28-92" name="__codelineno-28-92" href="#__codelineno-28-92"></a><span class="cm">/* 队首出队 */</span>
<a id="__codelineno-28-93" name="__codelineno-28-93" href="#__codelineno-28-93"></a><span class="kt">int</span><span class="w"> </span><span class="nf">popFirst</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-94" name="__codelineno-28-94" href="#__codelineno-28-94"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">peekFirst</span><span class="p">(</span><span class="n">deque</span><span class="p">);</span>
<a id="__codelineno-28-95" name="__codelineno-28-95" href="#__codelineno-28-95"></a><span class="w"> </span><span class="c1">// 队首指针向后移动一位</span>
<a id="__codelineno-28-96" name="__codelineno-28-96" href="#__codelineno-28-96"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">dequeIndex</span><span class="p">(</span><span class="n">deque</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a id="__codelineno-28-97" name="__codelineno-28-97" href="#__codelineno-28-97"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-28-98" name="__codelineno-28-98" href="#__codelineno-28-98"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-99" name="__codelineno-28-99" href="#__codelineno-28-99"></a><span class="p">}</span>
<a id="__codelineno-28-100" name="__codelineno-28-100" href="#__codelineno-28-100"></a>
<a id="__codelineno-28-101" name="__codelineno-28-101" href="#__codelineno-28-101"></a><span class="cm">/* 队尾出队 */</span>
<a id="__codelineno-28-102" name="__codelineno-28-102" href="#__codelineno-28-102"></a><span class="kt">int</span><span class="w"> </span><span class="nf">popLast</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-103" name="__codelineno-28-103" href="#__codelineno-28-103"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">peekLast</span><span class="p">(</span><span class="n">deque</span><span class="p">);</span>
<a id="__codelineno-28-104" name="__codelineno-28-104" href="#__codelineno-28-104"></a><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-28-105" name="__codelineno-28-105" href="#__codelineno-28-105"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
<a id="__codelineno-28-106" name="__codelineno-28-106" href="#__codelineno-28-106"></a><span class="p">}</span>
<a id="__codelineno-28-107" name="__codelineno-28-107" href="#__codelineno-28-107"></a>
<a id="__codelineno-28-108" name="__codelineno-28-108" href="#__codelineno-28-108"></a><span class="cm">/* 打印队列 */</span>
<a id="__codelineno-28-109" name="__codelineno-28-109" href="#__codelineno-28-109"></a><span class="kt">void</span><span class="w"> </span><span class="nf">printArrayDeque</span><span class="p">(</span><span class="n">arrayDeque</span><span class="w"> </span><span class="o">*</span><span class="n">deque</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-110" name="__codelineno-28-110" href="#__codelineno-28-110"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">arr</span><span class="p">[</span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">];</span>
<a id="__codelineno-28-111" name="__codelineno-28-111" href="#__codelineno-28-111"></a><span class="w"> </span><span class="c1">// 拷贝</span>
<a id="__codelineno-28-112" name="__codelineno-28-112" href="#__codelineno-28-112"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">front</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-28-113" name="__codelineno-28-113" href="#__codelineno-28-113"></a><span class="w"> </span><span class="n">arr</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queCapacity</span><span class="p">];</span>
<a id="__codelineno-28-114" name="__codelineno-28-114" href="#__codelineno-28-114"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-28-115" name="__codelineno-28-115" href="#__codelineno-28-115"></a><span class="w"> </span><span class="n">printArray</span><span class="p">(</span><span class="n">arr</span><span class="p">,</span><span class="w"> </span><span class="n">deque</span><span class="o">-&gt;</span><span class="n">queSize</span><span class="p">);</span>
<a id="__codelineno-28-116" name="__codelineno-28-116" href="#__codelineno-28-116"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">

File diff suppressed because one or more lines are too long

View File

@ -2,377 +2,377 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.hello-algo.com/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_appendix/contribution/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_appendix/installation/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_array_and_linkedlist/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_array_and_linkedlist/array/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_array_and_linkedlist/linked_list/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_array_and_linkedlist/list/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_array_and_linkedlist/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_backtracking/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_backtracking/backtracking_algorithm/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_backtracking/n_queens_problem/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_backtracking/permutations_problem/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_computational_complexity/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_computational_complexity/performance_evaluation/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_computational_complexity/space_complexity/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_computational_complexity/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_computational_complexity/time_complexity/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/basic_data_types/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/character_encoding/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/classification_of_data_structure/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/number_encoding/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_data_structure/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_graph/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_graph/graph/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_graph/graph_operations/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_graph/graph_traversal/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_graph/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_hashing/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_hashing/hash_collision/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_hashing/hash_map/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_hashing/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_heap/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_heap/build_heap/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_heap/heap/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_heap/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_introduction/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_introduction/algorithms_are_everywhere/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_introduction/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_introduction/what_is_dsa/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_preface/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_preface/about_the_book/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_preface/suggestions/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_preface/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_reference/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/binary_search/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/binary_search_edge/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/replace_linear_by_hashing/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/searching_algorithm_revisited/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_searching/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/bubble_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/bucket_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/counting_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/heap_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/insertion_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/merge_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/quick_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/radix_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/selection_sort/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/sorting_algorithm/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_sorting/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_stack_and_queue/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_stack_and_queue/deque/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_stack_and_queue/queue/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_stack_and_queue/stack/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_stack_and_queue/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/array_representation_of_tree/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/avl_tree/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/binary_search_tree/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/binary_tree/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/binary_tree_traversal/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://www.hello-algo.com/chapter_tree/summary/</loc>
<lastmod>2023-06-04</lastmod>
<lastmod>2023-06-05</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.