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