java中用数组实现队列操作的方法之一

package queue;

public class Queue {
   //定义数组的最大长度
	private int maxsize;
   //定义数组
	private int[] arr;
   //定义头指针
	private int front;
   //定义尾指针
	private int end;
	//定义计数器
	private int count;
 
	public Queue(int maxsize) {
		this.maxsize = maxsize;	//获取数组长度
		arr = new int[maxsize]; //创建数组
		front = 0;
		end = 0;
		count=0;
	}
//	  入队
	public void add(int data) {
		if(front==end && count==arr.length) {
			System.out.println("队列已满,无法添加数据。");
		}else {
			arr[end] = data;
			count++;
			end=(end+1) % arr.length;
		}
	}
//	   出队
	public void delete() {
		if(end==front && count==0) {
			System.out.println("队列已空。");
		}
		else {
			count--;
			front=(front+1) % arr.length;
		}
	}
	 
//	   打印输出队列
	public void printArr() {
		if(end==front && count==0) {
			System.out.println("队列已空,无法输出数据。");
		}
		else {
			if(front<end) {
				for (int i = front; i<end; i++) {
					System.out.println(arr[i]+" ");
				}
			}
			if(end<=front) {
				int j=front;
				for (int i = front; i<(end+arr.length);i++ ) {
					
					System.out.println(arr[j]+" ");
					j=(j+1)%arr.length;
				}
			}
			
		}
	}
	
	public static void main(String[] args) {
        //创建队列数组
		Queue aq = new Queue(5);
		//入队
//		aq.add(23);
		aq.add(55);
		aq.add(66);
		aq.add(77);
		aq.add(89);
		aq.add(90);
		//出队
//		aq.delete();
//		aq.delete();
//		
//		aq.add(40);
//		aq.add(15);
		
		aq.delete();
		aq.delete();
		
		aq.add(89);
		aq.add(90);
		//打印队列
		aq.printArr();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值