数据结构之基于Java的链接栈实现
2017-05-26 10:04
633 查看
本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。
public class StackSLinked implements Stack { private SLNode top; //链表首结点引用 private int size; //栈的大小 public StackSLinked() { top = null; size = 0; } //返回堆栈的大小 public int getSize() { return size; } //判断堆栈是否为空 public boolean isEmpty() { return size==0; } //数据元素e入栈 public void push(Object e) { SLNode q = new SLNode(e,top); top = q; size++; } //栈顶元素出栈 public Object pop() throws StackEmptyException { if (size<1) throw new StackEmptyException("错误,堆栈为空。"); Object obj = top.getData(); top = top.getNext(); size--; return obj; } //取栈顶元素 public Object peek() throws StackEmptyException { if (size<1) throw new StackEmptyException("错误,堆栈为空。"); return top.getData(); } }
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; }
//堆栈为空时出栈或取栈顶元素抛出此异常 public class StackEmptyException extends RuntimeException{ public StackEmptyException(String err) { super(err); } }
相关文章推荐
- 数据结构之基于Java的顺序列表实现
- 数据结构之基于Java的二叉树实现
- 数据结构书中基于整数的简单排序Java实现,巩固一下基础
- Java 下实现锁无关数据结构
- 优先队列的实现 Java数据结构与算法
- 数据算法基于FPGA的图像处理(七)--Verilog实现均值滤波Strut2教程-java教程
- (Java)单链表Java语言链式结构实现(数据结构四)
- 数据结构之优先队列--二叉堆(Java实现)
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- 数据结构——快速排序原理及算法Java实现
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(下)
- 基于java数据采集串口通讯的设计和实现
- 数据结构之优先队列--二叉堆(Java实现)
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- 基于半边数据结构(翼边数据结构)的Eular操作来实现扫成 通过OpenGL进行CAD实体建模 经测试可直接运行
- Java数据结构之双端链表原理与实现方法
- 使用 Google App Engine 实现基于云计算的小型 Java 数据服务应用
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(上)
- 数据结构—顺序表(自己实现Java的ArrayList)