像数组一样,链表是线性数据结构。与数组不同,链接列表元素不存储在连续的位置;元素使用指针链接。
为什么要链接列表?数组可用于存储相似类型的线性数据,但是数组具有以下限制。 1)数组的大小是固定的:因此,我们必须提前知道元素数量的上限。而且,通常,所分配的存储器与用途无关而等于上限。 2)在元素数组中插入新元素非常昂贵,因为必须为新元素创建空间,并且为创建房间而必须移动现有元素。 例如,在系统中,如果我们在数组id []中维护ID的排序列表。 id [] = [1000,1010,1050,2000,2040]。 如果要插入新的ID 1005,则要保持排序顺序,我们必须将所有元素都移到1000(不包括1000)之后。 除非使用某些特殊技术,否则删除数组也很昂贵。例如,要删除id []中的1010,必须移动1010之后的所有内容。 相对于阵列的优势1)动态大小 2)易于插入/删除 缺点: 1)不允许随机访问。我们必须从第一个节点开始顺序访问元素。因此,我们无法使用默认实现对链接列表进行有效的二进制搜索。 2)列表的每个元素都需要用于指针的额外存储空间。 3)不适合缓存。由于数组元素是连续的位置,因此存在引用位置,而在链接列表的情况下则不存在。 表示形式: 链表由指向链表第一个节点的指针表示。第一个节点称为头。如果链表为空,则head的值为NULL。 列表中的每个节点至少由两部分组成: 1)数据 2)指向下一个节点的指针(或引用) 在C语言中,我们可以使用结构表示一个节点。以下是带有整数数据的链表节点的示例。 在Java或C#中,LinkedList可以表示为一个类,而Node可以表示为单独的类。LinkedList类包含Node类类型的引用。 C
C++
C中的第一个简单链接列表让我们创建一个包含3个节点的简单链接列表。 C ++(注释为英文)
C
链表遍历 在上一个程序中,我们创建了一个具有三个节点的简单链表。让我们遍历创建的列表并打印每个节点的数据。为了进行遍历,让我们编写一个通用函数printList()来打印任何给定的列表。 C ++
C
输出:1 2 3 希望本篇文章对你有帮助~ 另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~ C语言C++编程学习交流圈子,Q群1090842465【点击进入】微信公众号:C语言编程学习基地 分享(源码、项目实战视频、项目笔记,基础入门教程) 欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦! 编程学习书籍分享:
编程学习视频分享:
|
|