数据结构之基于Java的顺序栈实现
本文的代码来自于《数据结构与算法(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的顺序栈实现相关推荐
- 数据结构之基于Java的链接栈实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...
- 数据结构之基于Java的顺序列表实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...
- 数据结构之基于Java的顺序队列实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 重点理解通过取余运算将线性 ...
- 【数据结构】栈:Java实现顺序栈栈应用浅析
1.栈是什么 定义:后进者先出,先进者后出,这就是典型的"栈"结构 操作特性:栈是一种"操作受限"的线性表,只允许在一端插入和删除数据. 使用场景:当某个数据集 ...
- java实现顺序栈_Java实现顺序栈原理解析
这篇文章主要介绍了java实现顺序栈原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 什么是栈 1.栈的英文是stack 2.栈是一个先入后出 ...
- 数据结构笔记(七)-- 顺序栈
栈的实现 一.栈的定义 栈(stack):是限定仅在表位进行插入或者删除操作的线性表.即先进后出 表尾端成为栈顶(top) 表头端称为栈底(bottom) 二.栈的顺序存储结构 stacksize 用 ...
- 数据结构之基于Java的最优二叉树实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. import dsa.ad ...
- 数据结构之基于Java的二叉树实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. public class ...
- 数据结构之基于Java的链接列表实现
本文的代码来自于<数据结构与算法(JAVA语言版)>,是笔者在网上找到的资料,非正式出刊版物.笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论. 双链表实现结构图 publ ...
最新文章
- Tomcat 之 tomcat安装和组件介绍
- AS400: 对象属性Domain和State
- spring源码编译和导入eclipse
- 基于Java、Kafka、ElasticSearch的搜索框架的设计与实现
- 面试遇到“一问三不知”的,真替他老东家捏把汗
- 导出DataTable数据到Word或者Excel
- Shiro权限控制框架
- matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析
- jdk8 window 64位安装包 微云网盘下载
- Kconfig 基本笔录
- Matplot pyplot绘制单图,多子图不同样式详解
- 芝麻小程序客服移动版,一款更及时查看和回复消息的工具!
- python拼写检查_python 英语单词拼写检查算法
- 嗨,我亲爱的朋友们!心存感恩
- 在WhatsApp中如何发起群发?
- 写作论文文献导入方法
- 【工具分享篇二】PDF公式提取教程(一):Mathpix/Typora及Pandoc扩展安装教程
- ios 判断数字开头_iOS 判断首字母是否大写 判断身份证 判断纯数字 判断纯汉字...
- c语言动态结构体数组
- 有哪些好的习惯值得培养
热门文章
- OpenCV中的函数waitKey()函数简介
- php外贸后台,…外贸购物商城网站开发… PHP开发 提供源代码 外贸网站案例 直接购买案例 雇佣兵网...
- java第一阶段面面试题_java基础阶段几个必会面试题
- 用计算机名怎么共享电视盒,机顶盒怎么通过电脑实现局域网共享
- python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及
- 电脑rar文件打开方式_怎么压缩文件,如何压缩文件?压缩软件哪个好?
- Python之list每个元素小数点精度控制
- Linux离线的nginx安装启动,linux-离线安装nginx
- qfile如何清空内容_数据丢失的场景有哪些?如何找回丢失的数据?
- python制作查询工具发给别人使用_用Python制作天气查询软件