百科狗-知识改变命运!
--

数组和链表的区别csdn

乐乐1年前 (2023-12-05)阅读数 6#综合百科
文章标签数据数组

数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。

大致总结一下特点和区别,拿几个人一起去看**时坐座位为例。

数组的特点

在内存中,数组是一块连续的区域。 拿上面的看**来说,这几个人在**院必须坐在一起。

数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如看**时,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺点是,如果来的人不够10个,那么剩下的位置就浪费了。如果临时有多来了个人,那么10个就不够用了,这时可能需要将第11个位置上的人挪走,或者是他们11个人重新去找一个11连坐的位置,效率都很低。如果没有找到符合要求的作为,那么就没法坐了。

插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后移。删除数据时,这个数据后面的数据都要往前移动。 比如原来去了5个人,然后后来又去了一个人要坐在第三个位置上,那么第三个到第五个都要往后移动一个位子,将第三个位置留给新来的人。 当这个人走了的时候,因为他们要连在一起的,所以他后面几个人要往前移动一个位置,把这个空位补上。

随机读取效率很高。因为数组是连续的,知道每一个数据的内存地址,可以直接找到给地址的数据。

并且不利于扩展,数组定义的空间不够时要重新定义数组。

链表的特点

在内存中可以存在任何地方,不要求连续。 在**院几个人可以随便坐。

每一个数据都保存了下一个数据的内存地址,通过这个地址找到下一个数据。 第一个人知道第二个人的座位号,第二个人知道第三个人的座位号……

增加数据和删除数据很容易。 再来个人可以随便坐,比如来了个人要做到第三个位置,那他只需要把自己的位置告诉第二个人,然后问第二个人拿到原来第三个人的位置就行了。其他人都不用动。

查找数据时效率低,因为不具有随机访问性,所以访问某个位置的数据都要从第一个数据开始访问,然后根据第一个数据保存的下一个数据的地址找到第二个数据,以此类推。 要找到第三个人,必须从第一个人开始问起。

不指定大小,扩展方便。链表大小不用定义,数据随意增删。

各自的优缺点

数组的优点

随机访问性强

查找速度快

数组和链表的区别csdn

数组的缺点

插入和删除效率低

可能浪费内存

内存空间要求高,必须有足够的连续内存空间。

数组大小固定,不能动态拓展

链表的优点

插入删除速度快

内存利用率高,不会浪费内存

大小没有固定,拓展很灵活。

链表的缺点

不能随机查找,必须从第一个开始遍历,查找效率低

-

数组

链表

读取 O(1) O(n)

插入 O(n) O(1)

删除 O(n) O(1)

C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。C++语言是C语言的超集,也就是说学会了C++,你其实已经把C语言学会了。至于说有什么区别,应该说是编程思想的区别吧,C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C++是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。具体说来话长。建议你学习C++的时候,学会用面向对象的方式思考和编程。现在在开发大项目的时候,都是应用面向对象的分析和设计的技术。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Linux之父Linus Torvalds在事隔三年之后,又一次炮轰C++语言(见http://www.realworldtech.com/forums/index.cfm?action=detail&id=110563&threadid=110549&roomid=2 )。在国外技术社区掀起新一波的批判C++语言的狂潮。国内技术社区也不甘清净,csdn在这里(http://news.csdn.net/a/20100612/218785.html)也有非常热烈的讨论。

目前各方对C++的批判,主要观点如下:

1. 做系统底层编程(比如linux内核、网易游戏引擎),C++和C相比没有任何优势。因为底层编程不需要C++那么多的“面向对象抽象”

2. 做上层应用编程(比如CRM、ERP等企业应用),虽然需要“面向对象的抽象能力”,但C++过多的语言机制导致C++语言陷阱太多(特别是稍不留神就有内存泄漏),因此应该选用提供垃圾收集机制的语言。(Linus没说,但是基本指的是C#、Java几个主流语言)。

从上面看c++似乎有点尴尬 但我还是喜欢c++ 我是菜鸟 没他们想得多 yeah

而且凡事也不可绝对话,见下文

这篇文章很好 可以看看

http://blog.sina.com.cn/s/blog_66e239ab0100nffn.html

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)