顺序表和链表的区别
1、存储分配方式不同:顺序存储结构是用一段连续的存储单元依次存储线性表的数据元素,单项链表是采用链式存储结构,用一组任意的存储单元存放线性表的元素 。
2、空间利用率不同:顺序表的空间利用率显然要比链表高 。因链表在存储数据时,每次只申请一个节点的空间,且空间的位置是随机的,这种申请存储空间的方式会产生很多空间碎片,一定程序上造成了空间浪费 。不仅如此,由于链表中每个数据元素都必须携带至少一个指针,因此链表对所申请空间的利用率也没有顺序表高 。
3、开辟空间的方式不同:顺序表存储数据实行的是 “一次开辟,永久使用”,即存储数据之前先开辟好足够的存储空间,空间一旦开辟后期无法改变大小(使用动态数组的情况除外) 。而链表则不同,链表存储数据时一次只开辟存储一个节点的物理空间,如果后期需要还可以再申请 。因此,若只从开辟空间方式的角度去考虑,当存储数据的个数无法提前确定,又或是物理空间使用紧张以致无法一次性申请到足够大小的空间时,使用链表更有助于问题的解决 。
VC中比较顺序表(数组)与链表的异同点,应用场合?顺序表的访问是很灵活的 。从时间效率上来说是O(1)的 。而删除与增加操作,却很花费时间,时间复杂度O(n) 。而链表的增加与删除是很快捷的 。但其访问却很花费时间 。如果在做大型项目时 。需要两者兼具,那么就可以用hash表 。
【顺序表和链表的区别】之于前两者应用场合,举个简单的例子,著名的“猴子报数问题”就能够明显的比较链表与数组的差别 。
推荐阅读
- 糖醋里脊的详细做法,糖醋排骨和糖醋里脊做法一样吗
- ps怎么随意缩放图片大小,ps怎么调整字体大小和粗细?
- 和程序员约会不要聊什么 和程序员约会是什么体验
- x和xs一样大吗,iphone xs和x一样大吗?
- am3和am3+的区别
- 为什么瑞士被称为“钟表王国”?
- 老公出轨后回归要怎么和他沟通 老公出轨了却拒绝和我沟通
- 不爱你的老婆会对你这四件事选择漠不关心 老婆不爱你的表现
- i711700kf和i711700k区别
- 为什么冰雹出现在暖季?