数据结构:队列(JAVA)

package begin;
import java.util.*;
class queuer{
	final int maxsize=8;
	int[] data=new int[maxsize];
	int head=0,real=0;
	
	queuer() {
		System.out.println("空队列创建成功。");
	}
	
	queuer(int[] dat) {
		for(int i : dat) {
			data[real]=i;
			real++;
		}
	}

	void addque(int a) {
		if((real+1)%maxsize==head) {
			System.out.println("队列已满。");
			return;
		}
		data[real]=a;
		real=(real+1)%maxsize;
	}

	int outque() {
		if(real==head) {
			System.out.println("队列为空,无法出队。");
			return -999;
		}
		int a=data[head];
		head=(head+1)%maxsize;
		return a;
	}

	int getque() {
		if(real==head) {
			System.out.println("队列为空");
			return -999;
		}
		int a=data[head];
		return a;
	}
	
	void appear() {
		if(head==real){
			System.out.println("队列为空");
			return;
		}
		for(int l=head;l!=real;) {
			System.out.print(data[l%maxsize]+" ");
			l=(l+1)%maxsize;
		}
	}
}



public class queue {
	public static void main(String[]args) {
		Scanner write=new Scanner(System.in);
		int[] a= {1,2,3};
		int ruler;
		queuer que=new queuer(a);
		System.out.println("1:入队\t2:出队\t3:显示队头元素\t4:x显示队内元素\t其他数字为退出。");
		System.out.println("请输入您的操作数:");
		ruler=write.nextInt();
		while(true) {
			if(ruler==1) {
				System.out.println("请输入要入队的数:");
				ruler=write.nextInt();
				que.addque(ruler);
			}
			else if(ruler==2){
				ruler=que.outque();
				if(ruler!=-999)
					System.out.println("出队元素为:"+ruler);
			}
			else if(ruler==3) {
				ruler=que.getque();
				if(ruler!=-999)
					System.out.println("队头元素为:"+ruler);				
			}
			else if(ruler==4) {
				que.appear();
			}
			else
				break;
			System.out.println("\n请输入您的操作数:");
			ruler=write.nextInt();
		}
		write.close();
		System.out.println("Bye Bye");
	}
}
posted @ 2020-03-28 17:41  lcyok  阅读(179)  评论(0)    收藏  举报