Java三种方法实现队列

   日期:2020-09-16     浏览:169    评论:0    
核心提示:数组实现队列//数组实现队列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

数组实现队列

//数组实现队列
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();
  }

}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服