数据结构(七)栈
来源:互联网 发布:大数据怎么做 编辑:程序博客网 时间:2024/05/16 17:49
栈按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈,删除则称为退栈。栈也称为后进先出表。
数组模拟实现堆栈
用数组模拟Stack实现部分方法。
/** * 数组实现堆栈 * @author Administrator * @param <E> */ public class MyStack<E> { private E datas[]; private int index;//下标,记录数据个数 public MyStack(int size){ datas = (E[]) new Object[size]; } public MyStack(){ this(10); } /** * 栈是否为空 * @return true 不为空 * false 为空 */ public boolean isEmpty(){ return index == 0; } /** * 压栈 * @param data */ public void push(E data){ datas[index] = data;//往数组中添加数据 index++;//索引自增 } /** * 移除堆栈顶部的对象,并返回该对象 * @return 堆栈顶部的对象 */ public E pop(){ if (isEmpty()) { throw new EmptyStackException(); } return datas[--index]; } }
链表模拟实现堆栈
用双链表模拟Stack实现部分方法。
/** * 链表实现堆栈 * @author Administrator * @param <E> */ public class MyStackLink<E> { //自定义链表,具体代码在数据结构(五)中 private MyDoubleLink<E> datas = new MyDoubleLink<>(); /** * 栈是否为空 * @return true 不为空 * false 为空 */ public boolean isEmpty(){ return datas.isEmpty(); } /** * 压栈 * @param data */ public void push(E data){ datas.add(data); } /** * 移除堆栈顶部的对象,并返回该对象 * @return 堆栈顶部的对象 */ public E pop(){ if (isEmpty()) { throw new EmptyStackException(); } //删除并返回链表dates尾部数据 return datas.removeRear(); } }
0 0
- 数据结构(七) --- 栈
- 数据结构(七)栈
- 数据结构(七)
- (七)抽象数据结构—栈
- java数据结构 七 栈(链式储存结构)
- 数据结构与算法之七 栈
- 七、Python:数据结构
- 数据结构复习题(七)
- 数据结构(七)链表
- 数据结构(七)
- 数据结构(七) 图
- 数据结构七线性表
- 【数据结构 七】---字符串
- 【数据结构实验七】查找
- 【数据结构 七】---字符串
- 数据结构(七)图
- 大话数据结构七:两栈共享存储空间(双向栈)
- 数据结构实验之栈七:出栈序列判定
- sq必会知识
- WebRTC学习之ICE深入理解
- Android多媒体(视频播放器-拍照-录像)
- QT学习笔记
- Android的okhttp的post请求,php返回json数据。以及遇到的okhttp dispatcher问题,和json解析遇到的问题
- 数据结构(七)栈
- HTTP协议
- ipc logging
- JMS(Java消息服务)简单示例
- app移动接口开发需要注意什么
- Spark 环境搭建 (hadoop之上)
- Linux 统计当前文件/目录个数
- 几种开源协议简要说明
- Xcode怎么打开Archives界面