Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97453
  • 博文数量: 24
  • 博客积分: 407
  • 博客等级: 一等列兵
  • 技术积分: 291
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 08:31
文章分类
文章存档

2012年(24)

我的朋友

分类: C/C++

2012-05-06 10:30:15

     数组是顺序存储的,顺序存储表示是将数据元素存放于一个连续的存储空间,利用物理相邻来表示逻辑关系,实现顺序存取或(按下标)直接存取。它的存储效率高,存取速度快。但它的空间大小如果是静态分配的,一经定义,在整个程序运行期间不会发生变化,因此,它不易扩充。同时,由于在插入或删除时,为保持原有顺序,平均需要移动一半(或近一半)元素,修改效率不高。

     链表是链式存储,链式存储表示的存储空间一般在程序运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生溢出的问题。同时在插入和删除时不需要保持数据元素的原有物理顺序,只需要保持原有的逻辑顺序就行了,故不必移动元素,只需修改它们的链接指针,修改效率高。但在存取表中的数据元素时,只能循链顺序进行访问,且需要额外的指针,存储效率和访问效率低于顺序存储表示。
简单总结:
1     在访问方式上
      数组可以随机访问其中的元素
      链表则必须是顺序访问,不能随机访问

2     空间的使用上
      链表可以随意扩大
      数组则不能
阅读(1684) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~