java栈的简单实现
2016-05-30 17:45
381 查看
一、栈的定义
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表
(1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom);
(2)当表中没有元素时称为空栈;
(3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表
栈的修改是按后进先出的原则进行,每次删除(退栈)的总是当前栈中" 最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部, 要到最后才能删除。
二、代码展示,实现从栈中加入和取出元素
package cn.java.stack;
public class Stack {
private int[] dataArray;
private int maxSize;
private int top;
public Stack(int max) {
super();
this.maxSize=max;
dataArray=new int[max];
top = -1;
}
public boolean push(int data) {
if (top+1==maxSize) {
System.out.println("栈已满,无法再加入数据");
return false;
}
this.dataArray[++top]=data;
return true;
}
public int pop() throws Exception {
if (top==-1) {
throw new Exception("栈为空");
}
return this.dataArray[top--];
}
public static void main(String[] args) {
Stack stack=new Stack(5);
stack.push(4);
stack.push(41);
stack.push(32);
stack.push(76);
stack.push(35);
for (int i = 0; i <stack.maxSize; i++) {
try {
System.out.print(stack.pop()+" ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
三、输出result
35 76 32 41 4
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表
(1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom);
(2)当表中没有元素时称为空栈;
(3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表
栈的修改是按后进先出的原则进行,每次删除(退栈)的总是当前栈中" 最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部, 要到最后才能删除。
二、代码展示,实现从栈中加入和取出元素
package cn.java.stack;
public class Stack {
private int[] dataArray;
private int maxSize;
private int top;
public Stack(int max) {
super();
this.maxSize=max;
dataArray=new int[max];
top = -1;
}
public boolean push(int data) {
if (top+1==maxSize) {
System.out.println("栈已满,无法再加入数据");
return false;
}
this.dataArray[++top]=data;
return true;
}
public int pop() throws Exception {
if (top==-1) {
throw new Exception("栈为空");
}
return this.dataArray[top--];
}
public static void main(String[] args) {
Stack stack=new Stack(5);
stack.push(4);
stack.push(41);
stack.push(32);
stack.push(76);
stack.push(35);
for (int i = 0; i <stack.maxSize; i++) {
try {
System.out.print(stack.pop()+" ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
三、输出result
35 76 32 41 4
相关文章推荐
- myeclipse编辑器设置
- Eclipse 上安装 Maven3插件
- Spring中bean注入初始化方式—通过注解@Configuration @bean
- Java中文键树的一种实现(附带模糊查询功能)
- Java IO
- Spring Session原理及源码分析
- 【转】Java检测字符串是否有乱码
- JVM运行时数据区总结以及对形象的内存布局
- Java多线程简析
- Java中迭代器的实现
- 使用JDK自带的方法进行文件解压
- struts2中文件下载以及中文乱码
- Java读取MicrosoftOffice Excel的内容
- MyEclipse 2016 CI 3发布
- java 成员访问级别
- JAVA集合
- RxJava(六) retryWhen操作符实现错误重试机制
- RxJava retryWhen操作符实现错误重试机制
- jdk1.8 和spring 2.5.5 兼容性问题
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)