数组的特点:
在内存中数组是一块连续的区域
数组在使用前要事先预定好大小,不然会浪费内存,静态数组由栈分配,动态数组由堆分配
查找效率高,因为数组是连续的,知道每一个元素的内存地址,可以直接找到给出地址的元素
插入元素与删除元素效率低
不利于扩展
内存空间要求高
数组的优点:
查找元素效率高
内存空间占有的少
数组的缺点:
插入元素与删除元素效率低
不利于扩展(若要扩展需要重新定义数组)
内存空间要求高
链表的特点:
在内存中是不连续的
每个结点都保存着下一个数据的地址
插入和删除比较方便
动态申请和删除内存空间
不需要指定大小,扩展方便
链表的优点:
插入和删除比较容易
扩展方便
链表的缺点:
查找元素的效率低