package Queue;
/**
* 程序名称:CH05_01
* 程序目的:实现队列数据的存入和取出
* @author 86176
*
*/
import java.io.*;
public class CH05_01 {
//需要使用front和rear两个指针分别指向前端和尾端
//声明队列queue[20],且一开始front和rear均预设为-1(因为java语言数组的索引从0开始),表示空队列。加数据时输入1,取出数据时输入2,将会直接打印队列前端的值;要结束时输入3.
public static int front=-1,rear=-1,max=20;
public static int val;
public static char ch;
public static int queue[]=new int[max];
public static void main(String[] args) throws IOException {
String strM;
int M=0;
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
while(rear<max-1 && M!=3) {
System.out.println("[1]存入数值[2]取出数值[3]结束");
strM=keyin.readLine();
M=Integer.parseInt(strM);
switch(M) {
case 1:
System.out.println("\n[请输入数值]");
strM=keyin.readLine();
val=Integer.parseInt(strM);
rear++;
queue[rear]=val;
break;
case 2:
if(rear>front) {
front++;
System.out.println("\n[取出数值]:["+queue[front]+"]"+"\n");
queue[front]=0;
}
else {
System.out.println("\n[队列已空]\n");
break;
}
break;
default:
System.out.println("\n");
break;
}
}
if(rear==max-1)
System.out.println("\n[队列已经满了]\n");
System.out.println("\n[目前队列中的数据]:");
if(front>=rear)
{
System.out.println("没有\n");
System.out.println("\n[队列已空]\n");
}
else {
while(rear>front) {
front++;
System.out.println("["+queue[front]+"]");
}
System.out.println("\n");
}
}
}