数组模拟栈操作

package stack;import java.util.Scanner;public class ArrayStackDemo {public static void main(String[] args) {//测试ArrayStack//创建栈ArrayStack arrayStack = new ArrayStack(4);String key = "";boolean loop = true;Scanner sc = new Scanner(System.in);while (loop){System.out.println("show:表示显示栈");System.out.println("exit:退出程序");System.out.println("push:表示入栈");System.out.println("pop:表示出栈");key = sc.next();switch (key){case "show":arrayStack.list();break;case "push":System.out.println("请输入一个数");int value = sc.nextInt();arrayStack.push(value);break;case "pop":try{System.out.println("出栈的数据是:"+arrayStack.pop());}catch (Exception e){System.out.println(e.getMessage());}break;case "exit":sc.close();loop = false;break;}}System.out.println("程序退出");}
}class ArrayStack{private int maxSize; //栈大小private int[] stack;//数组模拟栈,数据放入数组里private int top = -1; //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;}// 入栈 pushpublic 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 stack[value];}//遍历栈(从栈顶开始)public void list(){if (isEmpty()){System.out.println("栈空");}for (int i = top; i>=0; i--){System.out.printf("stack[%d] = %d\n",i,stack[i]);}}
}

数据结构 - 栈(数组模拟栈操作)相关推荐

  1. 数据结构之数组模拟栈

    栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: package com.ebiz.stack;/*** @author ...

  2. 六、使用数组模拟栈的思路及代码实现

    使用数组模拟栈的实现过程 1.栈的介绍 (1) 栈的英文为(stack) (2) 栈是一个先入后出(FILO-First In Last Out)的有序列表. (3) 栈(stack)是限制线性表中元 ...

  3. 字符串得结果!Java数组模拟栈以实现中缀表达式综合计算器,字符串表达式计算器

    文章目录 数组模拟栈类 中缀表达式计算器类(测试类) 数组模拟栈类 主要实现栈的一些基本功能,以及在该场景下的功能. //先创建一个栈 class AStack {private int maxSiz ...

  4. java 模拟栈底层用数组_java用数组模拟栈

    package stack2; public interface StackADT { /** * 添加元素 * @param object */ void push(Object object); ...

  5. Java版数据结构之数组模拟环形队列demo

    Java版数据结构之数组模拟环形队列demo 我的代码仓库:https://github.com/zhuangbinan/datastructure 类 CircleArray package clu ...

  6. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  7. 数组模拟栈和队列板子

    使用数组模拟数据结构栈和队列 栈:后进先出 对于栈:我们使用tt表示栈顶的下标,如果tt==0表示栈空 队列:先进先出 对于队列,我们使用hh表示队首,tt表示队尾,tt初始化为-1,判断队列是否为空 ...

  8. linux/bash:用数组模拟栈(FILO)的封装

    linux shell中是没有队列这个类型的,如果需要用到队列模型,就需要自己实现,以下是用数组模拟一个栈(FILO)的操作 #!/bin/bash # 向栈中添加一个元素 # $1 栈变量名 # $ ...

  9. 模拟栈 java_Java 模拟栈结构

    栈和队列: 通常是作为程序猿的工具,用于辅助构思算法.生命周期较短,执行时才被创建 訪问受限.在特定时刻,仅仅有一个数据可被读取或删除 是一种抽象的结构.内部的实现机制.对用户不可见.比方用数组.链表 ...

最新文章

  1. pg数据库生成随机时间_postgresql 时区与时间函数-阿里云开发者社区
  2. 疯子的算法总结(八) 最短路算法+模板
  3. linux命令headtail
  4. Worktile协同特色之二:任务看板管理
  5. 协议 - 收藏集 - 掘金
  6. telnet直接登录POP3
  7. 拼多多笔试_探险家冒险和大数问题
  8. 消防信号二总线有没电压_消防主机总线电压偏低 消防二总线详解
  9. html怎么插入word文档,word中怎样插入html代码?
  10. 计算机报考电子邮箱格式,电子邮箱格式怎么写
  11. web2.0是个异数?
  12. Java使用Thumbnails实现图片指定大小压缩
  13. 驾校考试科目二完整流程
  14. 【已解决】PEP 8: W292 no newline at end of file等相关PEP 8错误与警告
  15. MedianFlow中值流跟踪算法源码
  16. XCTF-mobile app3
  17. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj...
  18. obj文件和mtl文件格式说明
  19. 右键新建没有Word怎么办?右键新建添加Word方法!
  20. 在比特大陆SE5边缘计算盒上运行PaddleOCR轻量级预测模型

热门文章

  1. Windows7睡眠后自动唤醒
  2. 投资股权众筹项目,至少需要关注6个方面
  3. c++将文本中的字符串一次读入到内存
  4. 修改Fiddler实用插件JsonViewer
  5. mysql安装条款_mysql 安装注意
  6. python ssh脚本_ssh爆破(python脚本)
  7. 定时器取数据时实时进来的数据_Redis-数据淘汰策略amp;持久化方式(RDB/AOF)amp;Redis与Memcached区别...
  8. 1-4 鸡兔同笼(算法竞赛经典入门)
  9. 3617. 子矩形计数
  10. java不同环境_Spring Boot系列 – 5. 不同的环境使用不同的配置