社区
C语言
帖子详情
数组还是链表?
WuYL7812
2010-03-29 09:37:56
要存储一些重要数据,数据大小编译时还不知道,0-32m之间,统计平均起来略小于16m,每比数据大小64bytes,这些数据不需要查找,用32m的数组,还是单链表呢?哪个最节约内存?
大家踊跃发言,我取得票多者
...全文
539
46
打赏
收藏
数组还是链表?
要存储一些重要数据,数据大小编译时还不知道,0-32m之间,统计平均起来略小于16m,每比数据大小64bytes,这些数据不需要查找,用32m的数组,还是单链表呢?哪个最节约内存? 大家踊跃发言,我取得票多者
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
46 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
风子II
2010-03-29
打赏
举报
回复
为了通用和扩展,建议用分级索引和动态数组结合,否则不管是数组还是链表,做起增删改查都是很耗性能的。
dubiousway
2010-03-29
打赏
举报
回复
不喜欢链表。呵呵
fairywell
2010-03-29
打赏
举报
回复
再看了下lz要求,链表可以,如果要求更好的时空效率,可以考虑动态数组,如ls朋友说的,采取按块分配的方法,一次 malloc 一块。
vc_player
2010-03-29
打赏
举报
回复
鄙人见解,这种情况我似乎用链表多点。。
毕竟数据个数不太清楚,用数组的话一开始就得开辟一大块空间才行。。
而且,用链表的话,数据的查找和删除明显会方便很多~O(∩_∩)O
cy330206
2010-03-29
打赏
举报
回复
楼主可以去试试链表。。
hartharthart
2010-03-29
打赏
举报
回复
支持动态数组
bsr2009
2010-03-29
打赏
举报
回复
赞成链表。呵呵
bobo364
2010-03-29
打赏
举报
回复
单链表其实也省不了多少内存,搞个大数组也耗不掉多少内存,现在电脑的内存搞个1万个int元素的数组,小菜一碟
WuYL7812
2010-03-29
打赏
举报
回复
添加删除操作不多,按照保存先后顺序列出数据即可
cattycat
2010-03-29
打赏
举报
回复
平均16m,用32m的数组显然比较浪费了。用链表吧,但为了性能,分配链表节点不要频繁malloc,最好自己实现一个一次分配大一点的内存,把这些大的块链起来。
superlee19
2010-03-29
打赏
举报
回复
这些数据不需要查找,你存贮它们用来做甚?
如果存在很频繁的添加删除操作,建议用链表
如果存在很频繁的查找,排序,建议用数组或其他数据结构
你这个情况建议你什么都不要做
win32环境,普通的应用程序,是使用30M还是50M,区别不大,这种情况下用不着对内存斤斤计较
使用哪种容器具体要按照应用的目的来确定
kevinyujm
2010-03-29
打赏
举报
回复
对确定大小的数据,用链表。无论是程序逻辑,还是程序维护出发,都应该这样做。
chieh1213
2010-03-29
打赏
举报
回复
应该是链表比较好
fairywell
2010-03-29
打赏
举报
回复
没仔细看lz的要求,但如果插入删除操作少,可以选择数组,空间占用小,而且可以随机存储;否则用链表
筷子哥
2010-03-29
打赏
举报
回复
说实话,楼主用std::list更好。
用数组的话显然有浪费,因为你必须按照最大的内存用量提前定义。
用链表的话因为是根据来的数据进行动态创建的,内存用量应该优于数组。
链表在内存上的消耗主要是每一笔4个字节的指针(32位)
你看看这个消耗大,还是数组浪费的空间大。
huanmie_09
2010-03-29
打赏
举报
回复
[Quote=引用 12 楼 wuyl7812 的回复:]
大家注意,我的代码是在win32上运行的
[/Quote]
win32上没问题啊,sizeof(int)这个值跟编译器有关的。
用链表34M的内存楼主还是耗得起的吧。
itxuls
2010-03-29
打赏
举报
回复
链表。。。
WuYL7812
2010-03-29
打赏
举报
回复
大家注意,我的代码是在win32上运行的
zhangzhanwenzzzzzz
2010-03-29
打赏
举报
回复
不清楚,呵呵才看到链表。。。。。
huanmie_09
2010-03-29
打赏
举报
回复
[Quote=引用 3 楼 yuzl32 的回复:]
不需要查找,数据大小又不知道,还是用链表存储吧。
[/Quote]
up!
用数组存储的话,最多需要的节点个数:32*1024*1024/64=524288.
楼主需要注意,编译器的sizeof(int)=2的话,下标已经超出了int型数所能表示的范围.
另外,7楼已经计算出了用链表大约增加多少内存。
原先最大的存储量32M,化作链表最大存储量为:524288*(64+4)/1024/1024=34M
加载更多回复(26)
java中
链表
和
数组
的区别?
数组
和
链表
.pdf
java中
链表
和
数组
的区别?
数组
和
链表
.pdf
java中
链表
和
数组
的区别? (1)
数组
和
链表
.pdf
java中
链表
和
数组
的区别? (1)
数组
和
链表
.pdf
面试题总结:
数组
和
链表
的区别
数组
和
链表
.pdf
面试题总结:
数组
和
链表
的区别
数组
和
链表
.pdf
数据结构顺序表、
链表
和
数组
是逻辑结构还是物理(存储)结构?
数组
和
链表
.pdf
数据结构顺序表、
链表
和
数组
是逻辑结构还是物理(存储)结构?
数组
和
链表
.pdf
链表
和
数组
的区别在哪里?
数组
和
链表
.pdf
链表
和
数组
的区别在哪里?
数组
和
链表
.pdf
C语言
69,396
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章