首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数组与链表的区别
[问答题]
数组与链表的区别
添加笔记
求解答(0)
邀请回答
收藏(11)
分享
纠错
3个回答
添加回答
5
肉嘟嘟的小丸子
(1)逻辑结构。数组必须实现定义固定的长度,不能适应数据动态的增减的情况,即在数组使用前,就必须确定数组的大小。当数据增加时,可能超出原定义的元素的个数,当数据减少时,造成内存浪费。数组中插入删除数据项时,需要移动其他数据项。而链表采用动态分配内存的形式实现,可以适应数据动态增减情况,需要时可以用new/malloc分配内存空间,不需要时用delete/free将已分配的空间释放,不会造成内存空间的浪费,且可以方便的插入,删除数据项。
(2)内存结构。(静态)数组从栈中分配内存空间,对于程序员方便快速,但是自由度小。链表从堆中分配空间,自由度大,但申请管理比较麻烦。
(3)数据中数组的内存是顺序存储的,而链表是随机存取的。数组随机访问效率很高,可以直接定位,但插入删除操作的效率比较低。链表在插入删除操作上相对数组有很高的效率,而如果访问链表中的某个元素,那就要从表头逐个遍历,直到找到所需要的元素为止,所以链表的随机访问效率比数组低。
(4)链表不存在越界问题,数组有越界问题。数组便于查询,链表便于插入删除。数组节省空间但是长度固定。链表虽然变长,但是占了更多的存储空间。
发表于 2017-04-07 17:06:57
回复(0)
0
cyanlong
顺序存储结构的特点是逻辑上相邻的数据元素,在物理内存的位置也相邻,并且,顺序表的存储空间需要
预先分配
。
其优点有:
1.不用为表示节点间的逻辑关系而增加额外的开销。
2.顺序表可按元素序号随机访问。
其缺点为: 在对顺序表做
结构性修改
,如 删除(插入)时需要对删除点(插入点)之后的所有元素平移以保证顺序表内存上的连续性。
在链式存储结构中,使用指针(引用)实现元素之间的逻辑关系。并且,链式的存储空间是动态分配的。
其优点为:在对链式存储结构做结构性修改,如插入(删除)时,只需要改变对应位置的引用关系即可,无需对无关的元素做移位之类的操作。
其缺点为:链表不能随机存取元素。
编辑于 2017-01-10 10:50:05
回复(0)
0
WSW需要一个清醒的头脑
存储结构不同,数组对插入删除操作开销大,链表则对查找指定位置元素开销大
发表于 2017-01-10 08:36:27
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
数组
链表
上传者:
牛100
难度:
3条回答
11收藏
3829浏览
热门推荐
相关试题
明明的随机数
数组
评论
(3692)
来自
华为研发工程师编程题
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
有20000人的就餐需求,现建了一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题