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