数组:相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标
场景:倘若数组中第一个元素在地址A,则数组第二个元素就在地址A+1
数组的特性:
1.数组必须先定义固定长度,不能适应数据动态增减
2.当数据增加时,可能超出原先定义的元素个数,当数据减少时,造成内存浪费
3.数组查询比较方便,根据下标就可以直接找到元素,时间复杂度O(1);增加和删除比较复杂,需要移动操作数所在位置后的所有数据,时间复杂度为O(N)
链表:是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
场景:链表每个节点没有相对固定的位置关系。某个节点在地址A,其后的节点不一定在A+1,而在内存的其他空闲区域,呈现一种随机的状态
链表的特性:
1.链表动态进行存储分配,可适应数据动态增减
2.插入、删除数据比较方便,时间复杂度O(1);查询必