堆栈(Stack)是一种常见的数据结构,符合后进先出(First In Last Out)原则,通常用于实现对象存放顺序的逆序。栈的基本操作有push(添加到堆栈),pop(从堆栈删除),peek(检测栈顶元素且不删除)。

/*** Created by Frank*/
public class ToyStack {/*** 栈的最大深度**/protected int MAX_DEPTH = 10;/*** 栈的当前深度*/protected int depth = 0;/*** 实际的栈*/protected int[] stack = new int[MAX_DEPTH];/*** push,向栈中添加一个元素** @param n 待添加的整数*/protected void push(int n) {if (depth == MAX_DEPTH - 1) {throw new RuntimeException("栈已满,无法再添加元素。");}stack[depth++] = n;}/*** pop,返回栈顶元素并从栈中删除** @return 栈顶元素*/protected int pop() {if (depth == 0) {throw new RuntimeException("栈中元素已经被取完,无法再取。");}// --depth,dept先减去1再赋值给变量dept,这样整个栈的深度就减1了(相当于从栈中删除)。return stack[--depth];}/*** peek,返回栈顶元素但不从栈中删除** @return*/protected int peek() {if (depth == 0) {throw new RuntimeException("栈中元素已经被取完,无法再取。");}return stack[depth - 1];}
}

转载于:https://www.cnblogs.com/frankyou/p/6133857.html

Java经典实例:实现一个简单堆栈相关推荐

  1. Java经典实例:进阶版堆栈实现,支持任何对象类型

    支持任何对象类型,有更多的错误检查. package Stack;/*** Created by Frank*/ public class MyStack<T> implements Si ...

  2. java 经典 实例_5个JAVA入门必看的经典实例

    入门必看的5个java经典实例,供大家参考,具体内容如下 1.一个饲养员给动物喂食物的例子体现java中的面向对象思想,接口(抽象类)的用处 package com.softeem.demo; /** ...

  3. Java经典实例代码

    Java经典实例(第二版) 1. 获取环境变量 Java代码  1.    System.getenv("PATH");   2.    System.getenv("J ...

  4. java播放声音类和一个简单示例

    java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下:  import java.io.File; import java.io.IOException; import javax.so ...

  5. C++程序设计:原理与实践(进阶篇)15.6 实例:一个简单的文本编辑器

    15.6 实例:一个简单的文本编辑器 列表最重要的性质就是可以在不移动元素的情况下对其进行插入或删除操作.下面我们通过一个例子来说明这一点.考虑应该如何在文本编辑器中表示一个文本文件中的字符.所选用的 ...

  6. JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...

  7. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  8. java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...

    折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火.无奈之下自己撸了一个简单的任务调度器, ...

  9. java jsf_使用Java和JSF构建一个简单的CRUD应用

    java jsf 使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. JavaServer Fac ...

  10. 使用Java和JSF构建一个简单的CRUD应用

    使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 今天尝试Okta. JavaServer Faces(JSF)是用 ...

最新文章

  1. java.util.concurrent.Callable 接口 源码
  2. java常见类关系(UML建模)
  3. Spring Session - 源码解读
  4. PTA团体程序设计天梯赛篇(五)---- 难题篇一(30分题目)
  5. linux格式化该新添加的分区,Linux下添加新硬盘及分区格式化要点
  6. STL源码剖析—stl_config
  7. JetBrains 开发者调查 - 编程语言趋势
  8. Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动
  9. 正则表达式之反向引用
  10. linux访问网站出现443,Linux访问网站一直出现超时
  11. python读取序列5之后的数据_Python 基本功: 5. 数据序列化
  12. 关于Redis Cluster的几个问题
  13. 修改服务器时间需要重启吗,云服务器需要定期重启吗
  14. 自学python需要安装什么-学Python需要安装什么软件?Python软件工具大全
  15. 学习POI处理word
  16. centos7安装图形界面
  17. SQLSERVER2000 存储过程与ORACLE存储过程对比
  18. 信息学奥赛一本通(C++版) 第三部分 数据结构 第四章 图论算法
  19. CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
  20. idea创建HelloSpring(maven项目)

热门文章

  1. 《卸甲笔记》-PostgreSQL和Oracle的SQL差异分析之三:rownum和聚合函数
  2. javascript学习----window对象的学习与总结
  3. vmware esxi 4.0 上安装postfix,mailx发送邮件
  4. Oracle 11.2.0.2 Patch 说明
  5. 看后至少多活十年--只需十分钟
  6. 【find】Linux中find常见用法示例
  7. 几种数据库快速csv入库方式整理
  8. 《20171117-构建之法:现代软件工程-阅读笔记》
  9. linux的jdk、tomcat、tomcat安装等
  10. Expression Blend学习5控件