链表和数组的区别在哪里?

两者都属于一种数据结构html

从逻辑结构来看程序员

1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的状况。当数据增长时,可能超出原先定义的元素个数;当数据减小时,形成内存浪费;数组能够根据下标直接存取。数组

2. 链表动态地进行存储分配,能够适应数据动态地增减的状况,且能够方便地插入、删除数据项。(数组中插入、删除数据项时,须要移动其它数据项,很是繁琐)链表必须根据next指针找到下一个元素数据结构

从内存存储来看spa

1. (静态)数组从栈中分配空间, 对于程序员方便快速,可是自由度小指针

2. 链表从堆中分配空间, 自由度大可是申请管理比较麻烦 htm

从上面的比较能够看出,若是须要快速访问数据,不多或不插入和删除元素,就应该用数组;相反, 若是须要常常插入和删除元素就须要用链表数据结构了。blog

 

http://www.cnblogs.com/FCWORLD/archive/2010/11/20/1882391.html内存

http://blog.sina.com.cn/s/blog_75b0e2ad0101bx53.htmlclass

相关文章
相关标签/搜索