使用链表和数组的优缺点各有哪些方面呢?

xiabingsong 2004-12-28 07:38:19
要开发一个图书管理系统,是用链表实现还是数组呢?各有什么优缺点呢?
...全文
1312 点赞 收藏 11
写回复
11 条回复
寻开心 2004年12月29日
链表和数组的本质差异

1 在访问方式上
数组可以随机访问其中的元素
链表则必须是顺序访问,不能随机访问

2 空间的使用上
链表可以随意扩大
数组则不能

不要用mfc或者stl当中的链表或者数组来解释这个东西,那个是具体实践当中的特殊处理,不是链表和数组的本质东西

做管理系统,直接用数据库去最好,省去那些麻烦。
回复 点赞
sharkhuang 2004年12月29日
根据自己的数据选择合适的数据结构。数组也可以动态增加STL的vector就是这样。但是数组的插入删除效率不高。链表还有单向双向或者循环的选择
回复 点赞
qrlvls 2004年12月28日
单独用数组或链表效率都会非常低
最好使用数组+链表
数组用作索引
链表用作存储体
回复 点赞
kobefly 2004年12月28日
链表吧
这样可以动态确定
数组的话
个数就要先知道了
回复 点赞
snow810211 2004年12月28日
链表有点复杂:)
数组好理解点,但是我觉得可能楼主作系统,链表好些,应为要增减数量什么的
回复 点赞
zhangfjj 2004年12月28日
要根据需要选择相应的存储结构。
若需频繁的执行插入和删除操作,此时,为保证较高的修改效率,应选择链式存储表示
若表中数据相对变动较少,为获取较高的存储效率和存取效率,可以选择顺序存储表示(数组)
回复 点赞
zhangfjj 2004年12月28日
顺序存储表示是将数据元素存放于一个连续的存储空间,利用物理相邻来表示逻辑关系,实现顺序存取或(按下标)直接存取。它的存储效率高,存取速度快。但它的空间大小如果是静态分配的,一经定义,在整个程序运行期间不会发生变化,因此,它不易扩充。同时,由于在插入或删除时,为保持原有顺序,平均需要移动一半(或近一半)元素,修改效率不高。
链式存储表示的存储空间一般在程序运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生溢出的问题。同时在插入和删除时不需要保持数据元素的原有物理顺序,只需要保持原有的逻辑顺序就行了,故不必移动元素,只需修改它们的链接指针,修改效率高。但在存取表中的数据元素时,只能循链顺序进行访问,且需要额外的指针,存储效率和访问效率低于顺序存储表示。
回复 点赞
dongyuanzhang 2004年12月28日
数组在进行查找,排序操作是很方便;链表不需要连续空间,而且作插入操作方便!
分配空间上也不同,建立过程也不同!

回复 点赞
pcboyxhy 2004年12月28日
数组也可以动态分配,
以长度n(具体情况估算大小)为单位,
当x空间不够时,
就重新开辟一个长度为x+n的空间,
然后复制过去
回复 点赞
过客猫2020 2004年12月28日
数组是不可变的,链表是可以变长的!如果用动态数组,就另算了.我很少用链表,都是用动态数组!动态数组在容量不够时,需要重新分配内存,而链表不用!但用数组进行排序很方便,对于有序的数组查找,很快!
回复 点赞
LiJianHeng 2004年12月28日
链表可以动态增长,灵活。
数组要提前确定,定位快。
各有优缺点。
回复 点赞
发动态
发帖子
非技术区
创建于2007-09-28

4417

社区成员

5.8w+

社区内容

C/C++ 非技术区
社区公告
暂无公告