This commit is contained in:
krahets
2023-04-22 01:35:59 +08:00
parent a7acf4398a
commit fdcc9a2107
12 changed files with 807 additions and 787 deletions

View File

@@ -3039,98 +3039,100 @@
<a id="__codelineno-66-6" name="__codelineno-66-6" href="#__codelineno-66-6"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">extendRatio</span><span class="p">;</span><span class="w"> </span><span class="c1">// 列表每次扩容的倍数</span>
<a id="__codelineno-66-7" name="__codelineno-66-7" href="#__codelineno-66-7"></a><span class="p">};</span>
<a id="__codelineno-66-8" name="__codelineno-66-8" href="#__codelineno-66-8"></a>
<a id="__codelineno-66-9" name="__codelineno-66-9" href="#__codelineno-66-9"></a><span class="cm">/* 构造函数 */</span>
<a id="__codelineno-66-10" name="__codelineno-66-10" href="#__codelineno-66-10"></a><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="nf">newMyList</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-11" name="__codelineno-66-11" href="#__codelineno-66-11"></a><span class="w"> </span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">myList</span><span class="p">));</span>
<a id="__codelineno-66-12" name="__codelineno-66-12" href="#__codelineno-66-12"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<a id="__codelineno-66-13" name="__codelineno-66-13" href="#__codelineno-66-13"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="p">);</span>
<a id="__codelineno-66-14" name="__codelineno-66-14" href="#__codelineno-66-14"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</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-66-15" name="__codelineno-66-15" href="#__codelineno-66-15"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">extendRatio</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a id="__codelineno-66-16" name="__codelineno-66-16" href="#__codelineno-66-16"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="p">;</span>
<a id="__codelineno-66-17" name="__codelineno-66-17" href="#__codelineno-66-17"></a><span class="p">}</span>
<a id="__codelineno-66-18" name="__codelineno-66-18" href="#__codelineno-66-18"></a>
<a id="__codelineno-66-19" name="__codelineno-66-19" href="#__codelineno-66-19"></a><span class="cm">/* 析构函数 */</span>
<a id="__codelineno-66-20" name="__codelineno-66-20" href="#__codelineno-66-20"></a><span class="kt">void</span><span class="w"> </span><span class="nf">delMyList</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-21" name="__codelineno-66-21" href="#__codelineno-66-21"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">);</span>
<a id="__codelineno-66-22" name="__codelineno-66-22" href="#__codelineno-66-22"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">list</span><span class="p">);</span>
<a id="__codelineno-66-23" name="__codelineno-66-23" href="#__codelineno-66-23"></a><span class="p">}</span>
<a id="__codelineno-66-24" name="__codelineno-66-24" href="#__codelineno-66-24"></a>
<a id="__codelineno-66-25" name="__codelineno-66-25" href="#__codelineno-66-25"></a><span class="cm">/* 获取列表长度 */</span>
<a id="__codelineno-66-26" name="__codelineno-66-26" href="#__codelineno-66-26"></a><span class="kt">int</span><span class="w"> </span><span class="nf">size</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-27" name="__codelineno-66-27" href="#__codelineno-66-27"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">;</span>
<a id="__codelineno-66-28" name="__codelineno-66-28" href="#__codelineno-66-28"></a><span class="p">}</span>
<a id="__codelineno-66-29" name="__codelineno-66-29" href="#__codelineno-66-29"></a>
<a id="__codelineno-66-30" name="__codelineno-66-30" href="#__codelineno-66-30"></a><span class="cm">/* 获取列表容量 */</span>
<a id="__codelineno-66-31" name="__codelineno-66-31" href="#__codelineno-66-31"></a><span class="kt">int</span><span class="w"> </span><span class="nf">capacity</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-32" name="__codelineno-66-32" href="#__codelineno-66-32"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="p">;</span>
<a id="__codelineno-66-33" name="__codelineno-66-33" href="#__codelineno-66-33"></a><span class="p">}</span>
<a id="__codelineno-66-34" name="__codelineno-66-34" href="#__codelineno-66-34"></a>
<a id="__codelineno-66-35" name="__codelineno-66-35" href="#__codelineno-66-35"></a><span class="cm">/* 访问元素 */</span>
<a id="__codelineno-66-36" name="__codelineno-66-36" href="#__codelineno-66-36"></a><span class="kt">int</span><span class="w"> </span><span class="nf">get</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-37" name="__codelineno-66-37" href="#__codelineno-66-37"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">);</span>
<a id="__codelineno-66-38" name="__codelineno-66-38" href="#__codelineno-66-38"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">];</span>
<a id="__codelineno-66-39" name="__codelineno-66-39" href="#__codelineno-66-39"></a><span class="p">}</span>
<a id="__codelineno-66-40" name="__codelineno-66-40" href="#__codelineno-66-40"></a>
<a id="__codelineno-66-41" name="__codelineno-66-41" href="#__codelineno-66-41"></a><span class="cm">/* 更新元素 */</span>
<a id="__codelineno-66-42" name="__codelineno-66-42" href="#__codelineno-66-42"></a><span class="kt">void</span><span class="w"> </span><span class="nf">set</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</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-66-43" name="__codelineno-66-43" href="#__codelineno-66-43"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">);</span>
<a id="__codelineno-66-44" name="__codelineno-66-44" href="#__codelineno-66-44"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</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-66-45" name="__codelineno-66-45" href="#__codelineno-66-45"></a><span class="p">}</span>
<a id="__codelineno-66-46" name="__codelineno-66-46" href="#__codelineno-66-46"></a>
<a id="__codelineno-66-47" name="__codelineno-66-47" href="#__codelineno-66-47"></a><span class="cm">/* 尾部添加元素 */</span>
<a id="__codelineno-66-48" name="__codelineno-66-48" href="#__codelineno-66-48"></a><span class="kt">void</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</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-66-49" name="__codelineno-66-49" href="#__codelineno-66-49"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">list</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">list</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-50" name="__codelineno-66-50" href="#__codelineno-66-50"></a><span class="w"> </span><span class="n">extendCapacity</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="c1">// 扩容</span>
<a id="__codelineno-66-51" name="__codelineno-66-51" href="#__codelineno-66-51"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-52" name="__codelineno-66-52" href="#__codelineno-66-52"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">size</span><span class="p">(</span><span class="n">list</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-66-53" name="__codelineno-66-53" href="#__codelineno-66-53"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-66-54" name="__codelineno-66-54" href="#__codelineno-66-54"></a><span class="p">}</span>
<a id="__codelineno-66-55" name="__codelineno-66-55" href="#__codelineno-66-55"></a>
<a id="__codelineno-66-56" name="__codelineno-66-56" href="#__codelineno-66-56"></a><span class="cm">/* 中间插入元素 */</span>
<a id="__codelineno-66-57" name="__codelineno-66-57" href="#__codelineno-66-57"></a><span class="kt">void</span><span class="w"> </span><span class="nf">insert</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</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-66-58" name="__codelineno-66-58" href="#__codelineno-66-58"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">));</span>
<a id="__codelineno-66-59" name="__codelineno-66-59" href="#__codelineno-66-59"></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="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">index</span><span class="p">;</span><span class="w"> </span><span class="o">--</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-60" name="__codelineno-66-60" href="#__codelineno-66-60"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</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-66-61" name="__codelineno-66-61" href="#__codelineno-66-61"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-62" name="__codelineno-66-62" href="#__codelineno-66-62"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</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-66-63" name="__codelineno-66-63" href="#__codelineno-66-63"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-66-64" name="__codelineno-66-64" href="#__codelineno-66-64"></a><span class="p">}</span>
<a id="__codelineno-66-65" name="__codelineno-66-65" href="#__codelineno-66-65"></a>
<a id="__codelineno-66-66" name="__codelineno-66-66" href="#__codelineno-66-66"></a><span class="cm">/* 删除元素 */</span>
<a id="__codelineno-66-67" name="__codelineno-66-67" href="#__codelineno-66-67"></a><span class="c1">// 注意stdio.h 占用了 remove 关键词</span>
<a id="__codelineno-66-68" name="__codelineno-66-68" href="#__codelineno-66-68"></a><span class="kt">int</span><span class="w"> </span><span class="nf">removeNum</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-69" name="__codelineno-66-69" href="#__codelineno-66-69"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">));</span>
<a id="__codelineno-66-70" name="__codelineno-66-70" href="#__codelineno-66-70"></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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">];</span>
<a id="__codelineno-66-71" name="__codelineno-66-71" href="#__codelineno-66-71"></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="n">index</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">size</span><span class="p">(</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</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="p">{</span>
<a id="__codelineno-66-72" name="__codelineno-66-72" href="#__codelineno-66-72"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</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-66-73" name="__codelineno-66-73" href="#__codelineno-66-73"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-74" name="__codelineno-66-74" href="#__codelineno-66-74"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-66-75" name="__codelineno-66-75" href="#__codelineno-66-75"></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-66-76" name="__codelineno-66-76" href="#__codelineno-66-76"></a><span class="p">}</span>
<a id="__codelineno-66-77" name="__codelineno-66-77" href="#__codelineno-66-77"></a>
<a id="__codelineno-66-78" name="__codelineno-66-78" href="#__codelineno-66-78"></a><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-66-79" name="__codelineno-66-79" href="#__codelineno-66-79"></a><span class="kt">void</span><span class="w"> </span><span class="nf">extendCapacity</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-80" name="__codelineno-66-80" href="#__codelineno-66-80"></a><span class="w"> </span><span class="c1">// 先分配空间</span>
<a id="__codelineno-66-81" name="__codelineno-66-81" href="#__codelineno-66-81"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">newCapacity</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">list</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">extendRatio</span><span class="p">;</span>
<a id="__codelineno-66-82" name="__codelineno-66-82" href="#__codelineno-66-82"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">extend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">newCapacity</span><span class="p">);</span>
<a id="__codelineno-66-83" name="__codelineno-66-83" href="#__codelineno-66-83"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">;</span>
<a id="__codelineno-66-84" name="__codelineno-66-84" href="#__codelineno-66-84"></a>
<a id="__codelineno-66-85" name="__codelineno-66-85" href="#__codelineno-66-85"></a><span class="w"> </span><span class="c1">// 拷贝旧数据到新数据</span>
<a id="__codelineno-66-86" name="__codelineno-66-86" href="#__codelineno-66-86"></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">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a id="__codelineno-66-87" name="__codelineno-66-87" href="#__codelineno-66-87"></a><span class="w"> </span><span class="n">extend</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<a id="__codelineno-66-88" name="__codelineno-66-88" href="#__codelineno-66-88"></a>
<a id="__codelineno-66-89" name="__codelineno-66-89" href="#__codelineno-66-89"></a><span class="w"> </span><span class="c1">// 释放旧数据</span>
<a id="__codelineno-66-90" name="__codelineno-66-90" href="#__codelineno-66-90"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">temp</span><span class="p">);</span>
<a id="__codelineno-66-91" name="__codelineno-66-91" href="#__codelineno-66-91"></a>
<a id="__codelineno-66-92" name="__codelineno-66-92" href="#__codelineno-66-92"></a><span class="w"> </span><span class="c1">// 更新新数据</span>
<a id="__codelineno-66-93" name="__codelineno-66-93" href="#__codelineno-66-93"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">extend</span><span class="p">;</span>
<a id="__codelineno-66-94" name="__codelineno-66-94" href="#__codelineno-66-94"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newCapacity</span><span class="p">;</span>
<a id="__codelineno-66-95" name="__codelineno-66-95" href="#__codelineno-66-95"></a><span class="p">}</span>
<a id="__codelineno-66-96" name="__codelineno-66-96" href="#__codelineno-66-96"></a>
<a id="__codelineno-66-97" name="__codelineno-66-97" href="#__codelineno-66-97"></a><span class="cm">/* 将列表转换为 Array 用于打印 */</span>
<a id="__codelineno-66-98" name="__codelineno-66-98" href="#__codelineno-66-98"></a><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="nf">toArray</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-99" name="__codelineno-66-99" href="#__codelineno-66-99"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">;</span>
<a id="__codelineno-66-100" name="__codelineno-66-100" href="#__codelineno-66-100"></a><span class="p">}</span>
<a id="__codelineno-66-9" name="__codelineno-66-9" href="#__codelineno-66-9"></a><span class="k">typedef</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">myList</span><span class="w"> </span><span class="n">myList</span><span class="p">;</span>
<a id="__codelineno-66-10" name="__codelineno-66-10" href="#__codelineno-66-10"></a>
<a id="__codelineno-66-11" name="__codelineno-66-11" href="#__codelineno-66-11"></a><span class="cm">/* 构造函数 */</span>
<a id="__codelineno-66-12" name="__codelineno-66-12" href="#__codelineno-66-12"></a><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="nf">newMyList</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-13" name="__codelineno-66-13" href="#__codelineno-66-13"></a><span class="w"> </span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">myList</span><span class="p">));</span>
<a id="__codelineno-66-14" name="__codelineno-66-14" href="#__codelineno-66-14"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<a id="__codelineno-66-15" name="__codelineno-66-15" href="#__codelineno-66-15"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="p">);</span>
<a id="__codelineno-66-16" name="__codelineno-66-16" href="#__codelineno-66-16"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</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-66-17" name="__codelineno-66-17" href="#__codelineno-66-17"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">extendRatio</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a id="__codelineno-66-18" name="__codelineno-66-18" href="#__codelineno-66-18"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="p">;</span>
<a id="__codelineno-66-19" name="__codelineno-66-19" href="#__codelineno-66-19"></a><span class="p">}</span>
<a id="__codelineno-66-20" name="__codelineno-66-20" href="#__codelineno-66-20"></a>
<a id="__codelineno-66-21" name="__codelineno-66-21" href="#__codelineno-66-21"></a><span class="cm">/* 析构函数 */</span>
<a id="__codelineno-66-22" name="__codelineno-66-22" href="#__codelineno-66-22"></a><span class="kt">void</span><span class="w"> </span><span class="nf">delMyList</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-23" name="__codelineno-66-23" href="#__codelineno-66-23"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">);</span>
<a id="__codelineno-66-24" name="__codelineno-66-24" href="#__codelineno-66-24"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">list</span><span class="p">);</span>
<a id="__codelineno-66-25" name="__codelineno-66-25" href="#__codelineno-66-25"></a><span class="p">}</span>
<a id="__codelineno-66-26" name="__codelineno-66-26" href="#__codelineno-66-26"></a>
<a id="__codelineno-66-27" name="__codelineno-66-27" href="#__codelineno-66-27"></a><span class="cm">/* 获取列表长度 */</span>
<a id="__codelineno-66-28" name="__codelineno-66-28" href="#__codelineno-66-28"></a><span class="kt">int</span><span class="w"> </span><span class="nf">size</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-29" name="__codelineno-66-29" href="#__codelineno-66-29"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">;</span>
<a id="__codelineno-66-30" name="__codelineno-66-30" href="#__codelineno-66-30"></a><span class="p">}</span>
<a id="__codelineno-66-31" name="__codelineno-66-31" href="#__codelineno-66-31"></a>
<a id="__codelineno-66-32" name="__codelineno-66-32" href="#__codelineno-66-32"></a><span class="cm">/* 获取列表容量 */</span>
<a id="__codelineno-66-33" name="__codelineno-66-33" href="#__codelineno-66-33"></a><span class="kt">int</span><span class="w"> </span><span class="nf">capacity</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-34" name="__codelineno-66-34" href="#__codelineno-66-34"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="p">;</span>
<a id="__codelineno-66-35" name="__codelineno-66-35" href="#__codelineno-66-35"></a><span class="p">}</span>
<a id="__codelineno-66-36" name="__codelineno-66-36" href="#__codelineno-66-36"></a>
<a id="__codelineno-66-37" name="__codelineno-66-37" href="#__codelineno-66-37"></a><span class="cm">/* 访问元素 */</span>
<a id="__codelineno-66-38" name="__codelineno-66-38" href="#__codelineno-66-38"></a><span class="kt">int</span><span class="w"> </span><span class="nf">get</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-39" name="__codelineno-66-39" href="#__codelineno-66-39"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">);</span>
<a id="__codelineno-66-40" name="__codelineno-66-40" href="#__codelineno-66-40"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">];</span>
<a id="__codelineno-66-41" name="__codelineno-66-41" href="#__codelineno-66-41"></a><span class="p">}</span>
<a id="__codelineno-66-42" name="__codelineno-66-42" href="#__codelineno-66-42"></a>
<a id="__codelineno-66-43" name="__codelineno-66-43" href="#__codelineno-66-43"></a><span class="cm">/* 更新元素 */</span>
<a id="__codelineno-66-44" name="__codelineno-66-44" href="#__codelineno-66-44"></a><span class="kt">void</span><span class="w"> </span><span class="nf">set</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</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-66-45" name="__codelineno-66-45" href="#__codelineno-66-45"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="p">);</span>
<a id="__codelineno-66-46" name="__codelineno-66-46" href="#__codelineno-66-46"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</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-66-47" name="__codelineno-66-47" href="#__codelineno-66-47"></a><span class="p">}</span>
<a id="__codelineno-66-48" name="__codelineno-66-48" href="#__codelineno-66-48"></a>
<a id="__codelineno-66-49" name="__codelineno-66-49" href="#__codelineno-66-49"></a><span class="cm">/* 尾部添加元素 */</span>
<a id="__codelineno-66-50" name="__codelineno-66-50" href="#__codelineno-66-50"></a><span class="kt">void</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</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-66-51" name="__codelineno-66-51" href="#__codelineno-66-51"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">list</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">list</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-52" name="__codelineno-66-52" href="#__codelineno-66-52"></a><span class="w"> </span><span class="n">extendCapacity</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="c1">// 扩容</span>
<a id="__codelineno-66-53" name="__codelineno-66-53" href="#__codelineno-66-53"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-54" name="__codelineno-66-54" href="#__codelineno-66-54"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">size</span><span class="p">(</span><span class="n">list</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-66-55" name="__codelineno-66-55" href="#__codelineno-66-55"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-66-56" name="__codelineno-66-56" href="#__codelineno-66-56"></a><span class="p">}</span>
<a id="__codelineno-66-57" name="__codelineno-66-57" href="#__codelineno-66-57"></a>
<a id="__codelineno-66-58" name="__codelineno-66-58" href="#__codelineno-66-58"></a><span class="cm">/* 中间插入元素 */</span>
<a id="__codelineno-66-59" name="__codelineno-66-59" href="#__codelineno-66-59"></a><span class="kt">void</span><span class="w"> </span><span class="nf">insert</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</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-66-60" name="__codelineno-66-60" href="#__codelineno-66-60"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">));</span>
<a id="__codelineno-66-61" name="__codelineno-66-61" href="#__codelineno-66-61"></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="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">index</span><span class="p">;</span><span class="w"> </span><span class="o">--</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-62" name="__codelineno-66-62" href="#__codelineno-66-62"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</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-66-63" name="__codelineno-66-63" href="#__codelineno-66-63"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-64" name="__codelineno-66-64" href="#__codelineno-66-64"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</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-66-65" name="__codelineno-66-65" href="#__codelineno-66-65"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">++</span><span class="p">;</span>
<a id="__codelineno-66-66" name="__codelineno-66-66" href="#__codelineno-66-66"></a><span class="p">}</span>
<a id="__codelineno-66-67" name="__codelineno-66-67" href="#__codelineno-66-67"></a>
<a id="__codelineno-66-68" name="__codelineno-66-68" href="#__codelineno-66-68"></a><span class="cm">/* 删除元素 */</span>
<a id="__codelineno-66-69" name="__codelineno-66-69" href="#__codelineno-66-69"></a><span class="c1">// 注意stdio.h 占用了 remove 关键词</span>
<a id="__codelineno-66-70" name="__codelineno-66-70" href="#__codelineno-66-70"></a><span class="kt">int</span><span class="w"> </span><span class="nf">removeNum</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-71" name="__codelineno-66-71" href="#__codelineno-66-71"></a><span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">index</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">));</span>
<a id="__codelineno-66-72" name="__codelineno-66-72" href="#__codelineno-66-72"></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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">];</span>
<a id="__codelineno-66-73" name="__codelineno-66-73" href="#__codelineno-66-73"></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="n">index</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">size</span><span class="p">(</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</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="p">{</span>
<a id="__codelineno-66-74" name="__codelineno-66-74" href="#__codelineno-66-74"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</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-66-75" name="__codelineno-66-75" href="#__codelineno-66-75"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-66-76" name="__codelineno-66-76" href="#__codelineno-66-76"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">size</span><span class="o">--</span><span class="p">;</span>
<a id="__codelineno-66-77" name="__codelineno-66-77" href="#__codelineno-66-77"></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-66-78" name="__codelineno-66-78" href="#__codelineno-66-78"></a><span class="p">}</span>
<a id="__codelineno-66-79" name="__codelineno-66-79" href="#__codelineno-66-79"></a>
<a id="__codelineno-66-80" name="__codelineno-66-80" href="#__codelineno-66-80"></a><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-66-81" name="__codelineno-66-81" href="#__codelineno-66-81"></a><span class="kt">void</span><span class="w"> </span><span class="nf">extendCapacity</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-82" name="__codelineno-66-82" href="#__codelineno-66-82"></a><span class="w"> </span><span class="c1">// 先分配空间</span>
<a id="__codelineno-66-83" name="__codelineno-66-83" href="#__codelineno-66-83"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">newCapacity</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">list</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">extendRatio</span><span class="p">;</span>
<a id="__codelineno-66-84" name="__codelineno-66-84" href="#__codelineno-66-84"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">extend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">newCapacity</span><span class="p">);</span>
<a id="__codelineno-66-85" name="__codelineno-66-85" href="#__codelineno-66-85"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">;</span>
<a id="__codelineno-66-86" name="__codelineno-66-86" href="#__codelineno-66-86"></a>
<a id="__codelineno-66-87" name="__codelineno-66-87" href="#__codelineno-66-87"></a><span class="w"> </span><span class="c1">// 拷贝旧数据到新数据</span>
<a id="__codelineno-66-88" name="__codelineno-66-88" href="#__codelineno-66-88"></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">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">list</span><span class="p">);</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a id="__codelineno-66-89" name="__codelineno-66-89" href="#__codelineno-66-89"></a><span class="w"> </span><span class="n">extend</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">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<a id="__codelineno-66-90" name="__codelineno-66-90" href="#__codelineno-66-90"></a>
<a id="__codelineno-66-91" name="__codelineno-66-91" href="#__codelineno-66-91"></a><span class="w"> </span><span class="c1">// 释放旧数据</span>
<a id="__codelineno-66-92" name="__codelineno-66-92" href="#__codelineno-66-92"></a><span class="w"> </span><span class="n">free</span><span class="p">(</span><span class="n">temp</span><span class="p">);</span>
<a id="__codelineno-66-93" name="__codelineno-66-93" href="#__codelineno-66-93"></a>
<a id="__codelineno-66-94" name="__codelineno-66-94" href="#__codelineno-66-94"></a><span class="w"> </span><span class="c1">// 更新新数据</span>
<a id="__codelineno-66-95" name="__codelineno-66-95" href="#__codelineno-66-95"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">extend</span><span class="p">;</span>
<a id="__codelineno-66-96" name="__codelineno-66-96" href="#__codelineno-66-96"></a><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newCapacity</span><span class="p">;</span>
<a id="__codelineno-66-97" name="__codelineno-66-97" href="#__codelineno-66-97"></a><span class="p">}</span>
<a id="__codelineno-66-98" name="__codelineno-66-98" href="#__codelineno-66-98"></a>
<a id="__codelineno-66-99" name="__codelineno-66-99" href="#__codelineno-66-99"></a><span class="cm">/* 将列表转换为 Array 用于打印 */</span>
<a id="__codelineno-66-100" name="__codelineno-66-100" href="#__codelineno-66-100"></a><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="nf">toArray</span><span class="p">(</span><span class="n">myList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-101" name="__codelineno-66-101" href="#__codelineno-66-101"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">nums</span><span class="p">;</span>
<a id="__codelineno-66-102" name="__codelineno-66-102" href="#__codelineno-66-102"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">