This commit is contained in:
krahets
2023-07-26 08:59:03 +08:00
parent fd34c845bc
commit 974fea7de4
48 changed files with 299 additions and 299 deletions

View File

@@ -4997,8 +4997,8 @@
<p>在链表实现中,链表的扩容非常灵活,不存在上述数组扩容时效率降低的问题。但是,入栈操作需要初始化节点对象并修改指针,因此效率相对较低。不过,如果入栈元素本身就是节点对象,那么可以省去初始化步骤,从而提高效率。</p>
<p>综上所述,当入栈与出栈操作的元素是基本数据类型(如 <code>int</code> , <code>double</code> )时,我们可以得出以下结论:</p>
<ul>
<li>基于数组实现的栈在触发扩容时效率会降低,但由于扩容是低频操作,因此平均效率更高</li>
<li>基于链表实现的栈可以提供更加稳定的效率表现</li>
<li>基于数组实现的栈在触发扩容时效率会降低,但由于扩容是低频操作,因此平均效率更高</li>
<li>基于链表实现的栈可以提供更加稳定的效率表现</li>
</ul>
<h3 id="_5">空间效率<a class="headerlink" href="#_5" title="Permanent link">&para;</a></h3>
<p>在初始化列表时,系统会为列表分配“初始容量”,该容量可能超过实际需求。并且,扩容机制通常是按照特定倍率(例如 2 倍)进行扩容,扩容后的容量也可能超出实际需求。因此,<strong>基于数组实现的栈可能造成一定的空间浪费</strong></p>