Java三种方法实现队列

时间:2020-9-16 作者:admin

数组实现队列

//数组实现队列
class queue{
	int[] a = new int[5];
	int i = 0;
	//入队操作
	public void in(int m) {
		a[i++] = m;
	}
//	出队列操作   取出最前面的值  通过循环遍历把所有的数据向前一位
	public int out() {
		int index = 0;
		int temp = a[0];
		for(int j = 0;j < i;j++) {
			a[j] = a[j + 1];
		}
		return temp;
	}
	
}

ArrayList实现队列

//集合实现队列
class queue{
	List<Integer> list = new ArrayList<Integer>();
	int index = 0;
	
	public void in(int n) {
		list.add(n);
		index++;
	}
	//出队列操作
	//出队
    public int out(){  
       if(!list.isEmpty()){  
           index--;  
           return list.remove(0);  
       }  
       return -1;  
    }  
}

两个堆栈实现队列

//两个堆栈实现一个队列
class queue3 {

  Stack<Integer> stackA = new Stack<Integer>();
  Stack<Integer> stackB = new Stack<Integer>();

  //入队
  public void in(int n) {
      stackA.push(n);
  }

  //出队  我们把A里面的元素遍历拿出放入B中 再拿出B中的第一个元素  
  public int out() {
	  //判断b栈有没有元素 有返回false 无返回真
      if(stackB.isEmpty()) {
    	  while(!stackA.isEmpty()) {
    		  stackB.push(stackA.pop());
    	  }
      }
      return stackB.pop();
  }

}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。