Java数据结构——数组实现栈
public class StackAndQueue {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入栈的大小:");int maxSize = scanner.nextInt();ArrayStack stack = new ArrayStack(maxSize);String key = "";boolean loop = true;while(loop){System.out.println("show: 表示显示栈");System.out.println("exit: 退出程序");System.out.println("push: 表示添加数据到栈(入栈)");System.out.println("pop: 表示从栈取出数据(出栈)");System.out.println("请输入你的选择");key = scanner.next();switch(key){case "show":stack.showStack();break;case "push":System.out.println("输入数据:");int value = scanner.nextInt();stack.push(value);break;case "pop":try{int res = stack.pop();System.out.println("出栈数据为:"+res);}catch (Exception e){System.out.println(e.getMessage());}break;case "exit":scanner.close();loop = false;break;default:break;}}System.out.println("程序退出");}}class ArrayStack{private int maxSize;private int[] stack;private int top = -1;public ArrayStack(int maxSize){this.maxSize = maxSize;stack = new int[this.maxSize];}public boolean isFull(){return top == maxSize - 1;}public boolean isEmpty(){return top == -1;}public void push(int value){if(isFull()){System.out.println("栈满");return;}top++;stack[top] = value;}public int pop(){if(isEmpty()){throw new RuntimeException("栈空,无数据");}int value = stack[top];top --;return value;}public void showStack(){if(isEmpty()){System.out.println("栈空,无数据");return;}for(int i = top;i>=0;i--){System.out.println("top->value");System.out.println(i+"->"+stack[i]);}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!