Java实现简单的栈
来源:互联网 发布:it狂人 360云盘 编辑:程序博客网 时间:2024/06/06 16:33
栈的定义
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。(1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。
(2)当表中没有元素时称为空栈。
(3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。
栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"
最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,
要到最后才能删除。
放上网上找的一张图更为清晰。
在Java我用数组去实现了栈这一线性表的数据结构
package com.gaorui.Stack;/** * Java实现栈 * @author JavaGR_ais * */public class Stack {private Object stack[];//定义类型为Object的数组来保存进栈的数组private int maxsize;//定义栈的大小private int top;//定义栈顶的位置游标
<span style="white-space:pre"></span>//初始化栈对象,因为我这里用数组模拟的,数组长度必须指定,所以必须确定栈的大小public Stack(int maxsize) {this.maxsize = maxsize;stack = new Object[maxsize];//初始化数组top = -1;//因为现在没有数据压入栈,所以让栈顶的游标为0}
<span style="white-space:pre"></span>//获取栈的大小,即栈顶元素的游标+1public int getStackSize() {if (top == -1) {return 0;}return top + 1;}public int getSize() {return maxsize;}
<span style="white-space:pre"></span>//数据进栈public void push(Object data) {stack[++top] = data;//这里注意是前++,保证top值在这条语句执行完之前+1}<span style="white-space:pre"></span>
<span style="white-space:pre"></span>//数据出栈public Object pop() {<span style="white-space:pre"></span>
<span style="white-space:pre"></span>//没有数据在栈里,返回nullif (top == -1) {return "null";}<span style="white-space:pre"></span>//有数据返回栈顶元素,栈顶游标top -1return stack[top--];}public Object peek() {if(top==-1){return "null";}return stack[top--];}public static void main(String[] args) throws Exception {Stack stack = new Stack(1000);stack.push(new String("1"));stack.push(new String("2"));stack.push(new String("3"));System.out.println(stack.getStackSize() + "Stack");stack.push(new String("4"));stack.push(new String("5"));stack.push(new String("嘻嘻"));// System.out.println(stack.peek());System.out.println(stack.peek());/*while (stack.top >= 0) {System.out.println(stack.pop());}*/}}
0 0
- Java简单栈的实现
- Java实现简单的栈
- java栈的简单实现
- 栈的Java简单实现
- JAVA栈的简单实现
- java实现简单的队列和栈
- java栈实现简单的计算器
- java 简单实现栈
- [Java] 多线程的简单实现
- 简单计算器的java实现
- java实现简单的计算器
- java缓存的简单实现
- Java实现的简单计算器
- 简单计算器的Java实现
- Java简单队列的实现
- java实现简单的hashTable
- 简单的RPC java实现
- 《java---简单计算器的实现》
- 2015.12.19提高组模拟赛
- Jug Hard【ZSTUOJ--4216】
- OC 4 字符串
- UVALive 6908Electric Bike(dp)
- android studio 打包流程
- Java实现简单的栈
- virtualbox中安装centos7 mininal,配置网络
- OC 5 NSArray 数组 NSDictionary 字典 NSSet集
- 设计模式-建造者模式
- synchronized 关键字
- dhcpd.conf文件配置示例
- 常用的字符串小code
- MySQL 5.6 for Windows 解压缩版配置安装
- UVALive 6910Cutting Tree(并查集)