public class Test23{
public static void main(String[] agrs){
MyArrayList list=new MyArrayList();
list.pushBack(1);
list.pushBack(2);
list.pushBack(3);
list.print();
list.pushFront(10);
list.pushFront(20);
list.pushFront(30);
list.print();
list.insert(3,0);
list.print();
list.earse(3);
list.print();
}
}
//顺序表的元素类型是int
class MyArrayList{
//属性是什么
private int[] array;//代表存储数据的数组
private int size;//记录顺序表已有数据个数
public MyArrayList(){
//申请空间
array=new int[4];
//初始化数据个数
size=0;
}
public void pushBack(int element){//尾插法
ensureCapacity();
array[size++]=element;
}
public void pushFront(int element){//头插法
ensureCapacity();
for(int i=size;i>=1;i--)
{
array[i]=array[i-1];
}
array[0]=element;
size++;
}
public void insert(int index,int element){//指定下标插入指定元素
ensureCapacity();
if(index<0||index>size)
{
System.err.println("下标错误");
return;
}
for(int i=size-1;i>=index;i--)
{
array[i+1]=array[i];
}
array[index]=element;
size++;
}
public void popBack(int element){//尾删法
if(size<=0)
{
System.err.println("顺序表为空");
return;
}
array[size-1]=0;
size--;
}
public void popFront(){//头删法
if(size<=0)
{
System.err.println("顺序表为空");
return;
}
for(int i=0;i<size-1;i++)
{
array[i]=array[i+1];
}
array[size-1]=0;
size--;
}
public void earse(int index){//删除指定下标的元素
if(size<=0)
{
System.err.println("顺序表为空");
}
if(index<0||index>size-1)
{
System.err.println("下标错误");
}
for(int i=index;i<=size-1;i++)
{
array[i]=array[i+1];
}
array[size-1]=0;
size--;
}
public void print(){//打印
for(int i=0;i<size;i++)
{
System.out.print(array[i]+" ");
}
System.out.println();
}
private void ensureCapacity(){//扩容
if(size<array.length)
{
return;
}
int newCapacity=array.length*2;
int[] newArray=new int[newCapacity];
for(int i=0;i<size;i++)
{
newArray[i]=array[i];
}
array=newArray;
}
}
顺序表的插入和删除
最新推荐文章于 2023-10-26 11:22:39 发布