数组和链表的区别
2016-07-26 本文已影响412人
飞向大海的菜鸟
两者的区别可以从两方面:
- 内存存储:
① 数组从栈中分配空间,对程序员方便快速,自由度小。
② 链表从堆中分配内存。自由度大但申请管理比较麻烦。 - 逻辑结构:
① 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减情况(数据插入、删除比较麻烦)。当数据增加时,可能会超出数组的最大空间(越界);当数据减少时,造成内存浪费。
② 链表动态地进行存储分配,可以适应数据动态地增减情况(数据插入删除简单)(数组中插入、删除数据项时,需要移动其他项),但链表查找元素时需要遍历整个链表。