用Java模拟队列的出队和进队
1.[代码][Java]代码
package com.stackANDqueue;
import java.io.DataInputStream;
import java.io.IOException;
/*
* 循环队列的入队和出队
*/
public class Queue {
static int MAX = 20;
static String[] item = new String[MAX];
static int front, rear;
public Queue() {
// TODO Auto-generated constructor stub
front = 0;
rear = -1;
}
/**
* 按任何一键立刻执行Fuction
*/
public static void anyKey_f(){
char tChar;
System.out.println(" Press any key to contunue...");
try {
tChar = (char) System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void enqueue_f(){//入队函数
DataInputStream in = new DataInputStream(System.in);
if(rear >= MAX-1) System.out.println("\n Queue is full ! \n");
else{
rear ++;
System.out.println(" \n Please enter item to insert ! \n");
System.out.flush();
try {
item[rear] = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("");
}
public static void dequeue_f(){//出队函数
if(front > rear) System.out.println("\n No item ,Queue is empty ! \n");
else{
System.out.print("\n Item " + item[front] + " is deleted ! \n");
front ++;
}
System.out.println("");
}
public static void list_f(){
DataInputStream in = new DataInputStream(System.in);
int count=0, i=0;
if(front > rear) System.out.print("\n No item , Queue is empty ! \n\n");
else{
System.out.print("\n ITEM \n");
System.out.flush();
for(i = front; i<= rear; i++){
System.out.print("");
System.out.print(item[i] + "\n");
count ++;
if(count % 20 ==0) anyKey_f();
}
System.out.print(" --------------------\n");
System.out.print(" Total item : "+count + "\n\n");
anyKey_f();
System.out.println("");
}
}
@SuppressWarnings("deprecation")
public static void main(String args[]){
DataInputStream in = new DataInputStream(System.in);
String op = "";
int option = 0;
Queue obj = new Queue();
do{
System.out.println("****************** Stack Program *******************");
System.out.println(" ");
System.out.println(" <1> Insert Node ");
System.out.println(" <2> Delete Node ");
System.out.println(" <3> List Node ");
System.out.println(" <4> Exit ! ");
System.out.println(" ");
System.out.println("****************************************************");
System.out.print("\n Choice : ");
System.out.flush();
op = "";
try {
op = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
option = 0;
try{
option = Integer.valueOf(op).intValue();
}catch(NumberFormatException e){
System.out.println("\n Please input (1,2,3,4).....");
System.out.println("\n\n\n");
}
switch(option){
case 1:
enqueue_f();
break;
case 2:
dequeue_f();
break;
case 3:
list_f();
break;
case 4:
System.exit(0);
}
}while(true);
}
}