您的位置:首页 > 理论基础 > 数据结构算法

数据结构——栈—— 顺序栈(附java实现)

2013-12-06 13:51 429 查看
堆栈(英语:stack),也可直接称。中国大陆作堆栈,台湾作堆叠,在计算机科学中,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英语:top)进行加入资料(英语:push)和输出资料(英语:pop)的运算。

由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

堆栈数据结构使用两种基本操作:推入(push)和弹出(pop):

推入:将数据放入堆栈的顶端(阵列形式或串行形式),堆栈顶端top指标加一。
弹出:将顶端数据资料输出(回传),堆栈顶端资料减一。



Java实现:

public class AStack {

private static final int DEFAULTSIZE = 10;
private int size;
private int top;
private Object[] listArray;

/**
* 无参构造方法
* */
public AStack(){
setup(AStack.DEFAULTSIZE);
}
/**
* 有参构造方法
* */
public AStack(int size){
setup(size);
}
/**
* 初始化方法
* */
private void setup(int size){
this.size = size;
this.top = 0;
this.listArray = new Object[size];
}
/**
* 清空操作
* */
public void clear(){
this.top = 0;
}
/**
* 压栈操作
* @throws Exception
* */
public void push(Object object){
if(this.top < this.size){
this.listArray[++top - 1] = object;
}else{
System.out.println("Stack overflow!");
}
}
/**
* 弹出栈顶元素
* @throws Exception
* */
public Object pop(){
if(isEmpty()){
System.out.println("Stack is empty!");
return null;
}else{
top--;
return this.listArray[top];
}
}

public boolean isEmpty(){
return this.top == 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: