package com.cxy.springdataredis.data;

import java.util.Scanner;

public class StackDemo {
public static void main(String[] args) {
//测试一下ArrayStack 是否正确
//先创建一个ArrayStack对象->表示栈
ArrayStack stack = new ArrayStack();
String key = "";
boolean loop = true; //控制是否退出菜单
Scanner scanner = new Scanner(System.in); 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.list();
break;
case "push":
System.out.println("请输入一个数");
int value = scanner.nextInt();
stack.push(value);
break;
case "pop":
try {
int res = stack.pop();
System.out.printf("出栈的数据是 %d\n", res);
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
break;
case "exit":
scanner.close();
loop = false;
break;
default:
break;
}
} System.out.println("程序退出~~~");
} }
class ArrayStack{
private int top =-;
private int maxSize;
private int[] stack; public ArrayStack(int maxSize) {
this.maxSize = maxSize;
stack = new int[this.maxSize];
} //栈满
public boolean isFull() {
return top == maxSize - ;
}
//栈空
public boolean isEmpty() {
return top == -;
}
public void push(int n){
if (isFull()){
throw new RuntimeException("栈以满");
}
top++;
stack[top] =n;
}
public int pop(){
if (isEmpty()){
throw new RuntimeException("栈为空");
}
System.out.println(stack[top]);
int value =stack[top];
top--;
return value;
} public void list() {
if(isEmpty()) {
System.out.println("栈空,没有数据~~");
return;
}
//需要从栈顶开始显示数据
for(int i = top; i >= ; i--) {
System.out.printf("stack[%d]=%d\n", i, stack[i]);
}
}
}

最新文章

  1. 团队第二周:SRS文档
  2. SQ--模糊查询
  3. windows phone(成语典籍游戏开发)
  4. jquery mobile 方法收集.
  5. SpringMVC接收checkbox传值
  6. [Everyday Mathematics]20150303
  7. mysql error: Access denied for user 'root'@'localhost' (using password: YES)
  8. echarts_部分图表配置_dataZoom精确控制显示数据数量
  9. Jenkins: Can't connect to Docker daemon解决办法
  10. 干货!一篇文章集合所有Linux基础命令
  11. vue中复选框全选与反选
  12. D1图论最短路专题
  13. Spark机器学习(5):SVM算法
  14. python多线程相关知识点
  15. 新建web项目myeclipse基本设置
  16. 二十一、MVC的WEB框架(Spring MVC)
  17. Android viewpager + 可缩放的imageview
  18. MVC底层原理
  19. java集合(类似python的列表)
  20. git 查询某人的提交记录

热门文章

  1. 6、通过Appium Desktop 实现录制功能
  2. 1022 Digital Library (30 分)
  3. MVC过滤器-->ActionFilterAttribute和HandleErrorAttribute
  4. java-day20
  5. Python 内置函数&filter()&map()&reduce()&sorted()
  6. linux常用命令-4查看文件内容命令
  7. shell脚本实现批量端口扫描
  8. linux 7 系统查询相关
  9. eureka多实例,模拟多台机器
  10. 安装和使用pyspider框架时遇到的问题