链表
数组:
特点:
- 相同的数据类型的元素
- 在一个内存块中连续存储
=>在计算机中数组只存储了首个元素的地址,即基地址。数组存储的变量都是统统数据类型的,所以占用空间大小相同。所以,在查询数组的某个元素时只需要按照(基地址+偏移地址)进行查找。这个计算的时间复杂度为0(1)。
ps:偏移地址 = 单个变量占用空间大小 * 查找的第几个元素
数组和链表的比较:
数组:
- 优点: 操作简单,按照下标访问元素迅速O(1)
- 缺点:存储元素数目固定、需要分配连续的空间块、插入元素实现复杂(动态数组解决了这个问题)
链表:
- 优点:增加删除元素简单O(1),动态分配空间。
- 缺点:按下表访问元素困难