- 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);
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/130920135865.html
来源: http://www.codesnippet.cn/detail/130920135865.html