Java模拟数据结构中栈的进队出队
package com.stackANDqueue; import java.io.DataInputStream; import java.io.IOException; /* * 这是一个栈的模拟 * 模拟的是入栈和出栈 */ public class Stack { static int MAX = 10; static String[] item = new String[10]; static int top; Stack(){ top = -1; } /** * 入栈函数 */ @SuppressWarnings("deprecation") public static void push_f(){ DataInputStream in = new DataInputStream(System.in); if(top >= MAX-1) System.out.print("\n Stack is full ! \n"); //当栈已满,显示错误! else{ top ++; System.out.print("\n Please Enter item to insert ! \n"); System.out.flush(); try { item[top] = in.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(""); } /** * 出栈函数 */ public static void pop_f(){ if(top < 0) System.out.print("\n No item , stack is empty ! \n");//当栈没有数据存在,显示错误! else{ System.out.print("\n Item "+ item[top] + " delete ! \n"); top--; } System.out.println(""); } /** * 输出函数 */ public static void list_f(){ int count=0, i=0; if(top < 0) System.out.print("\n No item , stack is empty ! \n"); else{ System.out.print("\n\n ITEM\n"); System.out.print("-------------------\n"); for(i=top;i>=0;i--){ System.out.print(" "); System.out.println(item[i]); count++; } System.out.print("-------------------\n"); System.out.print("Total item :" + count +"\n\n"); } System.out.println(""); } @SuppressWarnings({ "deprecation", "unused" }) public static void main(String args[]){ DataInputStream in = new DataInputStream(System.in); String op = ""; int option = 0; Stack obj = new Stack(); 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: push_f(); break; case 2: pop_f(); break; case 3: list_f(); break; case 4: System.exit(0); } }while(true); } }