java数据结构之队列的入队和出队

互联网 19-11-26

用java实现队列的入队出队

首先要定义几个变量与数组:

a:表示队列的数组 (推荐学习:java课程)

rear:表示队列尾,这里初始化为0

(入队一个元素下标就往后移动一位)

front:表示队列头,同样初始化为0

(出队一个元素下标就往后移动一位)

maxsize:最大下标,这里初始化为4,但是队列只能存放3个。(队列的长度加一)

这里数组预留出的一个位置用来判断队列的空或满。

参考下面的图方便理解:

此时元素个数为3已经是满了的,因为数组个数是有效的元素个数加一。

注:元素下标只能为0——3

代码如下:

//数据结构——队列 import java.util.Scanner; public class Queue { 	int[] a ; 	int rear; 	int front; 	int maxsize; 	 	public static void main(String[] args) { 		Queue queue = new Queue(); 		Scanner scan = new Scanner(System.in); 		int i; 		do { 			System.out.println("请输入:1入队   2出队   3查看   0退出"); 			i = scan.nextInt(); 			switch(i) { 				case 1: 					System.out.println("请输入要入队的元素:"); 					queue.addQueue(scan.nextInt()); 					break; 				case 2: 					queue.exitQueue(); 					break; 				case 3: 					queue.showqueue(); 					break; 			} 		}while(i!=0); 		System.out.println("退出成功"); 	} 	 	//构造函数 	public Queue(){ 		a = new int[4]; 		rear = 0; 		front = 0; 		maxsize = 4; 	} 	 	//判断队列是否为空 	public boolean judgeNull() { 		return rear == front; 	} 	 	//判断队列是否已满 	public boolean judgeFull() { 		return (rear+1) % maxsize == front; 	} 	 	//入队 	public void addQueue(int num) { 		//判断,若队列已满则结束,不满则将其添加 		if(judgeFull()) { 			System.out.println("队列已满"); 			return ; 		} 		a[rear] = num; 		rear = (rear+1) % maxsize; 	} 	  	//出队 	public void exitQueue() { 		//判断,若队列为空则结束,非空则将其最前的元素取出 		if(judgeNull()) { 			System.out.println("队列为空"); 			return ; 		} 		front = (front+1) % maxsize; 	} 	 	//显示队列的元素 	public void showqueue() { 		if(judgeNull()) { 			System.out.println("队列为空"); 			return ; 		} 		for (int i = front; i < front+count(); i++) { 			System.out.printf("a[%d] = %d\n",i%maxsize,a[i%maxsize]); 		} 	} 	 	//求出队列的有效个数 	public int count() { 		return (rear+maxsize-front)%maxsize; 	} }

以上就是java数据结构之队列的入队和出队的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: java
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java线程中断之interrupt和stop

相关资讯