分享

C/C++编程笔记:链接列表(链表)及其遍历,今天就教你

 小世界的野孩子 2021-06-21

 

 

像数组一样,链表是线性数据结构。与数组不同,链接列表元素不存储在连续的位置;元素使用指针链接。

 

为什么要链接列表?

数组可用于存储相似类型的线性数据,但是数组具有以下限制。

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语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

 

编程学习视频分享:

 



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多