经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C/C++编程笔记:链接列表(链表)及其遍历,今天就教你
来源:cnblogs  作者:安生丶  时间:2020/12/14 17:26:04  对本文有异议

 

 

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

 

为什么要链接列表?

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

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

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

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

编程学习书籍分享:

 

编程学习视频分享:

 



原文链接:http://www.cnblogs.com/258a/p/14111106.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号