用Java模拟数据结构中栈的进队出队
1.[代码][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);
}
}