java编程基础之数组队列

            最常见的数据存储结构就是数组,数组查找方便,但删除,插入麻烦,而且大小固定不变。有时所需数组的长度会改变,那么这时就要用到数组队列。

            数组队列的实质还是数组,只不过将数组的动态增删封装在一个类中,增删的实质还是两个数组之间的复制。

          下面代码实现了数组队列的增,删,改,查。

package array;

public class test1 {
	 private Object[] array;
	 private int length;
	 
	 public int size(){
		 return length;
	 }
	 //产生一个数组
	 public void create(){
		 array=new Object[10];
		 for(int i=0;i<10;i++){
			 array[i]=i;
			 length++;
		 }
	 }
	//向数组中添加元素
	 public void add(Object data){
		 Object []array1=new Object[length+1];
		 for(int i=0;i<length;i++){
			 array1[i]=array[i];
		 }
		 array1[length]=data;
		 array=array1;
		 length++;
	 }
	 //向数组中插入元素
	 public void insert(int index ,Object data){
		 if(index>=0&&index<length){
			 Object []array1=new Object[length+1];
			 for(int i=0;i<index;i++){
				 array1[i]=array[i];
			 }
			 array1[index]=data;
			 for(int j=index+1;j<length;j++)
			 {
				 array1[j]=array[j-1];
			 }
			 array=array1;
		 }
		 else
		 {
			 System.out.println(" error");
		 }
	 }
	 //按照元素删除元素
	 public void delData(Object data){
		 Object []array1=new Object[length-1];
		 int k=0;
		 for(int i=0;i<length;i++){
			 if(array[i]==data){	 
			 }
			 else
			 {
				 array1[k]=array[i];
				 k++;
			 }
		 }
		 length--;
		 array=array1;
	 }
	 //按照位置删除元素
	 public void delIndex(int index){
		 if(index>=0&&index<length)
		 {
			 Object []array1=new Object[length-1];
			 for(int i=0;i<index;i++)
			 {
				 array1[i]=array[i];
			 }
			 for(int j=index+1;j<length;j++)
			 {
				 array1[j-1]=array[j];
			 }
			 length--;
			 array=array1;
		 }
		 else
		 {
			System.out.println("error"); 
		 }
		 
	 }
	 //遍历数组
	 public void travel(){
		 for(int i=0;i<length;i++){
			 System.out.println(array[i]);
		 }
	 }
	public static void main(String[] args) {
			test1 test=new test1();
			test.create();
			test.delData(3);
			test.insert(0, 100);
			test.delIndex(8);
			test.travel();
	}

}

 

你可能感兴趣的:(数据结构)