您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: