线性表
线性表是n个具有相同属性的有限数列,常见的线性表有:顺序表,链表,栈,队列,字符串…
线性表在逻辑上是线性结构,也就是说连成一条直线,但是在物理结构上不一定连续,线性表在物理上存储是,通常以数组和链式结构的形式进行存储。
值得注意的是:
- 线性表示一个序列
- 0个元素构成的线性表是空表
- 线性表的第一个元素无前驱,最后一个元素无后继,其他元素只有一个前驱和后继
- 线性表是有长度的,其长度就是元素个数,且其元素个数是有限的,也是就说线性表的长都是有限的。
顺序表
顺序表是用一段物理地址连续的存储数据元素的线性结构,一般情况下采用数组,在数组上完成数据的增删改查。
顺序表一般可以分文
- 静态顺序表:使用定长数组存储。
- 动态顺序表:使用动态开辟的数组存储。
杂记:
原码:原码的最高位是符号位,0代表正数,1代表负数,非符号位为该数字的绝对值二进制
反码:正数的反码与原码一致,负数的反码是最高位(符号位)不变,非符号位按位取反
补码:正数的补码与原码一致,负数的补码是反码+1
顺序表的Java实现:
我用类SeqList来定义顺序表
顺序表的底层是由数组来实现的,因此类的成员变量要有一个未初始化的数组,该数组在实例化时被构造方法初始化为默认长度的一个数组
还需要定义一个变量 usedSize 来记录当前数组存入元素的个数,另外默认长度设置为 DEFULT_SIZE = 10;
在此基础上,实现顺序表的增删改查操作。
构建顺序表:
public class SeqList {
private int[] elem;
//数组已用个数
private int usedSize;
//默认长度
private static int DEFULT_SIZE = 10;
//构造方法
public SeqList() {
this.elem = new int[DEFULT_SIZE];
this.usedSize = 0;
}
}
下面实现顺序表的一些操作
import java.util.Arrays;
public class SeqList {
private int[] elem;
private int usedSize;
private static int DEFULT_SIZE = 10;
public SeqList() {
this.elem