链表与数组的区别

原创 2006年06月16日 16:06:00

   链表和数组一样是一种数据结构。

数组是将元素在内存中连续存放,由于每个元素占用内存相同,所以可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。
   链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。如:上一个元素有个指针指到下一个元素,以此类推,直到最后一个元素。如果要访问链表中一个元素,需要从第一个元素开始,一直找到需要的元素位置。但是增加和删除一个元素对于链表数据结构就非常简单了, 只要修改元素中的指针就可以了。

从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反, 如果需要经常插入和删除元素就需要用链表数据结构了。

 

数组与链表的区别

  • 2011年10月08日 09:43
  • 26KB
  • 下载

C/C++中指针、引用、数组、链表的区别

指针与数组可以替换使用,容易让人产生错觉二者是等价的,那么二者到底有什么区别呢? 数组:在静态存储区被创建或者在栈上被创建,数组名对应着一块内存(而不是指向),其地址与容量在生命期内保持不变,且数组的...

Java 数组和链表的区别以及使用场景

科技优家 2016-12-11 17:11 数组:是将元素在内存中连续存储的;它的优点:因为数据是连续存储的,内存地址连续,所以在查找数据的时候效率比较高;它的缺点:在存储之前,我们需要申请一块...

队列、堆栈与数组、链表的区别与联系

首先,明确两个概念:数据结构与数据存储结构! 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合。听起来是不是很抽象,简单理解:数据结构就是描述对象间逻辑关系的学科。比如:队列就是一种...

C++中数组、链表和vector等容器之间的区别

1. 各个容器之间区别① vector   (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够...

【面试】:数组和链表的区别

数组: 数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元...

程序员求职之道(《程序员面试笔试宝典》)之数据结构与算法(数组和链表的区别)?

数组与链表是两种不同的数据存储方式, 链表的特性是在中间任意位置添加元素、删除元素都非常地快,不需要移动其它的元素,通常对于单链表而言,链表中每一个元素都要保存一个指向下一个元素的指针,而对于双链表,...
  • xdhehao
  • xdhehao
  • 2012年07月22日 23:41
  • 1423

[数据结构] 数组与链表的优缺点和区别

概述   数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加...

用链表创建栈 以及用数组创建栈的区别

#include #include typedef struct listnode { int data; struct listnode * next; }node,*Pnode; typede...

链表和数组区别

链表和数组一样是一种数据结构。   数组是将元素在内存中连续存放,由于每个元素占用内存相同,所以可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:链表与数组的区别
举报原因:
原因补充:

(最多只允许输入30个字)