栈是一种数据结构,只能从一端进行存储和访问。常规操作有压入栈和弹出栈。 
特性:先进先出,LIFO 
以下是用ArrayList为内核实现一个栈的数据结构

import java.util.ArrayList;
import java.util.List;
import java.util.EmptyStackException;public class Statck<E extends Object> {private List<E> pool = new ArrayList<E>();public Statck() {}public void clear() {pool.clear();}public boolean isEmpty() {return pool.isEmpty();}/*** 获取栈顶元素* */public E getTopObjcet() {if (isEmpty()) {return null;}return pool.get(pool.size()-1);}/*** 弹出栈操作* */public E pop() {if (isEmpty()) {throw new EmptyStackException();}return pool.remove(pool.size() - 1);}/*** 压入栈* */public void push(E e) {if (isEmpty()) {throw new EmptyStackException();}pool.add(e);}/*** 获取当前栈大小* */public int getStatckSize() {if (isEmpty()) {throw new EmptyStackException();}return pool.size();}}

以链表方式实现一个栈

public class Statck<E extends Object> {private List<E> pool = new ArrayList<E>();public Statck() {}public void clear() {pool.clear();}public boolean isEmpty() {return pool.isEmpty();}/*** 获取栈顶元素* */public E getTopObjcet() {if (isEmpty()) {return null;}return pool.get(0);}/*** 弹出栈操作* */public E pop() {if (isEmpty()) {throw new EmptyStackException();}return pool.remove(pool.size() - 1);}/*** 压入栈* */public void push(E e) {if (isEmpty()) {throw new EmptyStackException();}pool.add(e);}/*** 获取当前栈大小* */public int getStatckSize() {if (isEmpty()) {throw new EmptyStackException();}return pool.size();}}

java实现栈的数据结构相关推荐

  1. 《Java小子怒闯数据结构九重天》第三重天——栈

    本专栏文章主要用于帮助Java使用者快速上手数据结构,刷算法题! 前言 自古以来数据结构界就分为九重天,据说冲破这九重天之后就可以去进攻算法界最终修炼最后成佬,受万人敬仰. 但是这谈何容易,因为每一重 ...

  2. java客服系统_阿里Java内部资料:2020最全Java技术栈(架构篇+算法篇+大数据)

    我只截图不说话,PPT大全,氛围研发篇.算法篇.大数据.Java后端架构!除了大家熟悉的交易.支付场景外,支撑起阿里双十一交易1682亿元的"超级工程"其实包括以下但不限于客服.搜 ...

  3. JAVA中栈和堆总结

    堆栈空间分配 栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由O ...

  4. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  5. java获取栈最大值_实现O(1)获取最大最小值的栈----java

    实现O(1)获取最大最小值的栈和队列----java 一.如何实现包含获取最小值函数的栈 问题:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的getMin函数.在该栈中,调用getMin ...

  6. 46栈内存溢出、内存区域(程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区、直接内存、内存溢出)与内存溢出(对象实例化分析)

    46.什么情况下会发生栈内存溢出 46.1.Java 内存区域与内存溢出 46.1.1.内存区域 46.1.1.1.程序计数器 46.1.1.2.Java 虚拟机栈 46.1.1.3.本地方法栈 46 ...

  7. java 前端工作内容_java前端、java后端、java全栈工作主要内容是什么?哪个薪资高?...

    摘要 最近,听了一场关于java全栈工程师职位的简介说明,里面很清楚的说明了一下前端,后端,全栈都是做什么工作的.其实,想做这个行业,就应该了解职能以及技能需求,这样学习才能更高效.我知道一些刚刚入行 ...

  8. 全栈工程师薪水_2020 Java 全栈工程师进阶路线图,不可错过

    技术更新日新月异,对于初入职场或者刚开始学习的同学来说,经常会困惑该往那个方向发展,这一点所有刚开始学习的人基本都有这个体会的. 刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺 ...

  9. java的栈堆的理解_理解堆与栈 - 一步一个脚印 - BlogJava

    一.引言: 一直不太明白堆与栈到底是什么,是指一块内存区呢,还是指一种数据结构?编写程序中总提到内存分配的栈与堆的区别,静态与动态分配等,总也弄不明白,隐约知道一点,但总分不清堆与栈到底是一块内存区还 ...

最新文章

  1. 项目需求|10~15万|自动上料系统—将物料通过机械手臂挂在挂钩上
  2. POJ 2411 Mondriaan's Dream [经典状态压缩dp]
  3. 酷我音乐盒里的MV怎么下载
  4. Python学习笔记:初探NumPy世界
  5. 【TI-ONE系列教程(二)】如何使用 TI-ONE 平台内置算子玩转算法大赛
  6. h5调用摄像头扫二维码_你的H5还没有升级到小程序吗
  7. java图书管理系统(MySQL)
  8. 【OFDM】AWGN 信道下 BPSK 调制 (卷积码) 性能对比仿真实验 (Matlab 实现)
  9. 国内外汽车道路行驶工况数据
  10. 为什么普遍自学能力不足
  11. python中x%y是什么意思_python是什么
  12. android荣耀不弹出获取权限提醒,荣耀手机怎么设置锁屏消息提示?附不提示的解决方法...
  13. 毕业论文小论文查重吗?
  14. 2022年,关于副业赚钱和自主创业的一些建议
  15. RT-Thread:在dfs中使用cat、cp等命令时拔掉U盘死机问题
  16. H3C mstp+vrrp实验 新华三杯拆解
  17. Newman+Jenkins实现接口自动化测试
  18. 开关电源上的光耦的故障检修
  19. 物联网系统下的农村污水处理解决方案
  20. 激光雷达+imu_论IMU / GNSS在方程式赛车上的关键作用

热门文章

  1. python产生随机数_python技能:random库的使用
  2. linux镜像文件太大不好下载_Linux系统挂接命令的使用方法
  3. Golang入门~搭建Beego
  4. devstack mysql_devstack 安装openstack newton版
  5. php 零宽断言,正则表达式之零宽断言
  6. java 并发变量_二、Java多线程编程 (对象及变量的并发访问)
  7. android 控件随手指移动_Android 实习生面试经历记录
  8. change background color in chrome
  9. resnext50_32x4d-inference
  10. mysql io 100_MySQL服务器 IO 100%的案例分析