public class Stack {
//栈的最大长度
private int maxsize;
//栈中的元素
private int[] datas;
//栈顶的位置
private int top;
public Stack() {
this.maxsize = 100;
datas = new int[100];
top = -1;
}
public Stack(int maxsize) {
this.maxsize = maxsize;
datas = new int[maxsize];
top = -1;
}
/**
* 功能:插入元素data为新的栈顶元素
* 参数:Object data
*/
public void push(int data) {
if (top < maxsize - 1) {
datas[++top] = data;
}
}
/**
* 功能:从栈中取出数据
* 返回值:Object 从栈中取出的元素,堆栈是空的就返回-10001
*/
public int pop() {
if (top == -1)
return -10001;
return datas[top--];
}
/**
* 功能:从栈中取出栈顶元素
* 返回值:Object 从栈中取出的元素,堆栈是空的就返回-10001
*/
public int getTop() {
if (top == -1)
return -10001;
return datas[top];
}
/**
* 功能:判断栈是否为空
* 返回值:boolean 其中true为空,false为不空
*/
public boolean empty() {
return top == -1;
}
public void print() {
for (int i = top; i >=0; i--) {
System.out.print(datas[i] + " ");}
}
}
//栈的最大长度
private int maxsize;
//栈中的元素
private int[] datas;
//栈顶的位置
private int top;
public Stack() {
this.maxsize = 100;
datas = new int[100];
top = -1;
}
public Stack(int maxsize) {
this.maxsize = maxsize;
datas = new int[maxsize];
top = -1;
}
/**
* 功能:插入元素data为新的栈顶元素
* 参数:Object data
*/
public void push(int data) {
if (top < maxsize - 1) {
datas[++top] = data;
}
}
/**
* 功能:从栈中取出数据
* 返回值:Object 从栈中取出的元素,堆栈是空的就返回-10001
*/
public int pop() {
if (top == -1)
return -10001;
return datas[top--];
}
/**
* 功能:从栈中取出栈顶元素
* 返回值:Object 从栈中取出的元素,堆栈是空的就返回-10001
*/
public int getTop() {
if (top == -1)
return -10001;
return datas[top];
}
/**
* 功能:判断栈是否为空
* 返回值:boolean 其中true为空,false为不空
*/
public boolean empty() {
return top == -1;
}
public void print() {
for (int i = top; i >=0; i--) {
System.out.print(datas[i] + " ");}
}
}