堆栈是由同类元素组成的表,其元素的删除与增加都只发生在一端,这一端称为堆栈的顶。
堆栈是一种先入后出的数据结构。
本文看看如何用数组实现一个堆栈。
看以下对于堆栈的操作:
class Stack {
int top;
int [] arr;
public Stack() {
// 设置栈的大小是10
this(10);
}
public Stack(int length) {
this.arr = new int[length];
this.top = 0;
}
/** 执行入栈操作前先判断栈是否已满 */
public boolean isFull() {
if (top == arr.length) {
return true;
}
return false;
}
/** 入栈操作 */
public boolean push(int data) {
if (isFull()){
return false;
}
arr[top++] = data;
return true;
}
/** 执行出栈操作前判断栈是否为空 */
public boolean isEmpty() {
if(top == 0){
return true;
}
return false;
}
/** 出栈操作 */
public void pop() {
if(isEmpty()) {
return ;
}
--top;
}
/** 取得栈顶数据 */
public int getTop() {
if(isEmpty()){
return -1;
}
return arr[top - 1];
}
/** 栈数据的遍历输出 */
public void printf() {
for(int x = 0; x < top; x++) {
System.