线性表根据存储结构的不同可以分为顺序表和链表。
顺序表:存储空间预先分配,可能会出现空间闲置或者溢出的现象。访问元素时时间复杂度是O(1),插入,删除的时间复杂度是O(n)。适用情况:表长位置一定,不会出现溢出的情况。插入,删除操作较少,查询操作较多的情况。
链表:储存空间动态分配,不会出现空间闲置或溢出的现象。访问元素时时间复杂度是O(n),插入,删除不需要移动元素,时间复杂度是O(1)。适用情况:表长不能确定。需要频繁进行插入,删除操作的情况。
静态链表:就是用数组来表示链表,用数组元素的下标来模拟链表的指针。 由于是利用数组来定义的链表,属于静态储存分配, 因而叫做静态链表。定义两个数组,一个 nodes数组中含有两个参数,一个data用来存放数据,另一个next相当于链表中的指针,通过它可以找到下一个元素的位置。另一个used数组代表空间是否被使用,如果空间被使用则赋值为1,否则赋值为0。