package com.linjiinbao;
/**
* 栈的实现
*
* @author linji
*
*/
public class MyStack {
private int maxSize;
private int top;
private int length;
private int[] data;
public void initMyStack(int maxSize) {// 初始化
this.maxSize = maxSize;
top = -1;
length = 0;
data = new int[maxSize];
}
public boolean emptyStack() {// 判空
if (top == -1) {
return true;
} else {
return false;
}
}
public boolean fullStack() {
if (top == maxSize - 1) {
return true;
} else {
return false;
}
}
public void push(int element) {// 元素入栈
if (!fullStack()) {
data[++top] = element;
} else {
System.out.println("栈满");
}
}
public void pop() {// 元素出栈
if (!emptyStack()) {
data[top] = 0;
top--;
} else {
System.out.println("栈空");
}
}
public void getTop() {// 读栈顶元素
System.out.println(data[top]);
}
public void clearStack() {// 清空栈
while(top > -1) {
data[top] = 0;
top --;
}
}
public void printStack() {
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + "\t");
}
}
public static void main(String[] args) {
MyStack mystack = new MyStack();
mystack.initMyStack(5);
mystack.push(3);
mystack.push(5);
mystack.push(4);
mystack.printStack();
System.out.println();
mystack.pop();
mystack.printStack();
System.out.println();
mystack.getTop();
mystack.clearStack();
mystack.printStack();
}
}