顺序表的插入和删除

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;
 }
}

你可能感兴趣的:(java)