回顾数据结构与算法的时候,发现好多都忘了,于是决定整理一下;
线性表是n个数据元素的有限序列。
特点:
1.集合中必存在唯一的一个“第一元素”;
2.集合中必存在唯一的一个 “最后元素”;
3.除最后元素之外,均有 唯一的后继;
4. 除第一元素之外,均有 唯一的前驱。
基本操作:
初始化:构造一个空的线性表。
销毁:销毁一个已存在的线性表。
插入:第i个位置之前插入一个新元素。
删除:删除线性表中的第i个数据元素。
更新:更新第i个数据元素。
查找:找出线性表中满足特定条件的元素的位置
获取:取线性表中的第i个数据元素
判空:判断当前线性表是否为空
求长度:求出线性表中数据元素的个数
正序遍历:依次访问线性表中每个元素并输出
一;线性表的顺序表示:
线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。通常称这种存储结构的线性表为顺序表。
常见操作:
1.初始化
//无参构造方法
public sequenceList ( )
{
length=0; //线性表初始为空
listArray=(T[])new Object[maxSize];
}
//有参构造方法
public sequenceList (int n )
{
if(n<=0){
System.out.println("error");
System.exit(1);
}
length=0; //线性表初始为空
listArray=(T[])new Object[n];
}
2.顺序表的插入
public boolean add(T obj,int pos)
{
if(pos<1||pos>length+1){
System.out.println("pos值不合法");
return false;
}
//先判断顺序表数组空间状态,如果顺序表数组空间已经存满,重新分配存储空间
if(length==listArray.length){
T[] p=(T[])new Object[length*2];
for(int i=0;i<length;i++)
p[i]=listArray[i];
listArray=p;
}
for(int i=length;i>=pos;i--)
listArray[i]=listArray[i-1];
listArray[pos-1]=obj;
length++;
return true;
}
3.顺序表的删除
public T remove(int pos)
{
if(isEmpty()){
System.out.