本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。

public class StackArray implements Stack {private final int LEN = 4;  //数组的默认大小private Object[] elements;  //数据元素数组private int top;            //栈顶指针public StackArray() {top = -1;elements = new Object[LEN];}public int getSize() {return top+1;}//返回堆栈的大小public boolean isEmpty() {return top<0;}//判断堆栈是否为空public void push(Object e) {if (getSize()>=elements.length) expandSpace();elements[++top] = e;}//数据元素e入栈private void expandSpace(){Object[] a = new Object[elements.length*2];for (int i=0; i<elements.length; i++)a[i] = elements[i];elements = a;}public Object pop() throws StackEmptyException {if (getSize()<1)throw new StackEmptyException("错误,堆栈为空。");Object obj = elements[top];elements[top--] = null;return obj;}//栈顶元素出栈public Object peek() throws StackEmptyException {if (getSize()<1)throw new StackEmptyException("错误,堆栈为空。");return elements[top];}//取栈顶元素
}

public interface Stack {//返回堆栈的大小public int getSize();//判断堆栈是否为空public boolean isEmpty();//数据元素e入栈public void push(Object e);//栈顶元素出栈public Object pop() throws StackEmptyException;//取栈顶元素public Object peek() throws StackEmptyException;
}

package dsa.exception;//堆栈为空时出栈或取栈顶元素抛出此异常
public class StackEmptyException extends RuntimeException{public StackEmptyException(String err) {super(err);}
}

数据结构之基于Java的顺序栈实现相关推荐

  1. 数据结构之基于Java的链接栈实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...

  2. 数据结构之基于Java的顺序列表实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...

  3. 数据结构之基于Java的顺序队列实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 重点理解通过取余运算将线性 ...

  4. 【数据结构】栈:Java实现顺序栈栈应用浅析

    1.栈是什么 定义:后进者先出,先进者后出,这就是典型的"栈"结构 操作特性:栈是一种"操作受限"的线性表,只允许在一端插入和删除数据. 使用场景:当某个数据集 ...

  5. java实现顺序栈_Java实现顺序栈原理解析

    这篇文章主要介绍了java实现顺序栈原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 什么是栈 1.栈的英文是stack 2.栈是一个先入后出 ...

  6. 数据结构笔记(七)-- 顺序栈

    栈的实现 一.栈的定义 栈(stack):是限定仅在表位进行插入或者删除操作的线性表.即先进后出 表尾端成为栈顶(top) 表头端称为栈底(bottom) 二.栈的顺序存储结构 stacksize 用 ...

  7. 数据结构之基于Java的最优二叉树实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. import dsa.ad ...

  8. 数据结构之基于Java的二叉树实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...

  9. 数据结构之基于Java的链接列表实现

    本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 双链表实现结构图 publ ...

最新文章

  1. Tomcat 之 tomcat安装和组件介绍
  2. AS400: 对象属性Domain和State
  3. spring源码编译和导入eclipse
  4. 基于Java、Kafka、ElasticSearch的搜索框架的设计与实现
  5. 面试遇到“一问三不知”的,真替他老东家捏把汗
  6. 导出DataTable数据到Word或者Excel
  7. Shiro权限控制框架
  8. matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析
  9. jdk8 window 64位安装包 微云网盘下载
  10. Kconfig 基本笔录
  11. Matplot pyplot绘制单图,多子图不同样式详解
  12. 芝麻小程序客服移动版,一款更及时查看和回复消息的工具!
  13. python拼写检查_python 英语单词拼写检查算法
  14. 嗨,我亲爱的朋友们!心存感恩
  15. 在WhatsApp中如何发起群发?
  16. 写作论文文献导入方法
  17. 【工具分享篇二】PDF公式提取教程(一):Mathpix/Typora及Pandoc扩展安装教程
  18. ios 判断数字开头_iOS 判断首字母是否大写 判断身份证 判断纯数字 判断纯汉字...
  19. c语言动态结构体数组
  20. 有哪些好的习惯值得培养

热门文章

  1. OpenCV中的函数waitKey()函数简介
  2. php外贸后台,…外贸购物商城网站开发… PHP开发 提供源代码 外贸网站案例 直接购买案例 雇佣兵网...
  3. java第一阶段面面试题_java基础阶段几个必会面试题
  4. 用计算机名怎么共享电视盒,机顶盒怎么通过电脑实现局域网共享
  5. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及
  6. 电脑rar文件打开方式_怎么压缩文件,如何压缩文件?压缩软件哪个好?
  7. Python之list每个元素小数点精度控制
  8. Linux离线的nginx安装启动,linux-离线安装nginx
  9. qfile如何清空内容_数据丢失的场景有哪些?如何找回丢失的数据?
  10. python制作查询工具发给别人使用_用Python制作天气查询软件