This commit is contained in:
krahets
2023-04-06 22:04:14 +08:00
parent d20fa209e6
commit c515efea8b
7 changed files with 61 additions and 67 deletions

View File

@@ -1768,11 +1768,8 @@
<h1 id="42">4.2. &nbsp; 链表<a class="headerlink" href="#42" title="Permanent link">&para;</a></h1>
<div class="admonition note">
<p class="admonition-title">引言</p>
<p>内存空间是所有程序的公共资源,排除已占用的内存,空闲内存往往是散落在内存各处的。我们知道,存储数组需要内存空间连续,当我们需要申请一个很大的数组时,系统不一定存在这么大的连续内存空间。而链表则更加灵活,不需要内存是连续的,只要剩余内存空间大小够用即可。</p>
</div>
<p>「链表 Linked List」是一种线性数据结构其中每个元素都是单独的对象各个元素一般称为结点之间通过指针连接。由于结点中记录了连接关系因此链表的存储方式相比于数组更加灵活系统不必保证内存地址的连续性。</p>
<p>内存空间是所有程序的公共资源,排除已被占用的内存空间,空闲内存空间往往是散落在内存各处的。上节讲到,<strong>存储数组的内存空间必须是连续的</strong>,当我们需要申请一个非常大的数组时,系统不一定能够分配这么大的连续内存空间。</p>
<p>相对地,链表则更加灵活,可以被存储到非连续的内存空间。「链表 Linked List」是一种线性数据结构其中每个元素都是单独的对象各个元素即结点之间通过指针连接。由于结点中记录了连接关系因此链表的存储方式相比于数组更加灵活系统可将结点分散在内存各处而不必保证内存地址的连续性。</p>
<p>链表的「结点 Node」包含两项数据一是结点「值 Value」二是指向下一结点的「指针 Pointer」或称「引用 Reference」</p>
<p><img alt="链表定义与存储方式" src="../linked_list.assets/linkedlist_definition.png" /></p>
<p align="center"> Fig. 链表定义与存储方式 </p>