二、是什么
1、线性表
线性表,顾名思义,就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。
数组、链表、栈、队列等也是线性表结构。
与之对应的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,数据之间并不是简单的前后关系。
2、连续的内存空间和相同类型的数据
三、数据访问
数组是如何实现根据下标随机访问数组元素的。
int[] a =new int[10]。在下图中,计算机给数组,分配一个连续的内存空间1000-1039,其中,内存块的首地址为
base_address = 1000 。
寻址公式:a[i]_address = base_address + i*data_type_size。
其中data_type_size表示数组中每个元素的大小。上述例子中,数组存储的是int类型数组,所以data_type_size为4字节。
四、低效的“插入”和“删除”
数组为了保持内存数据的连续性,会导致插入、删除这两个操作比较低效