package aa.datastructure;
import java.util.Arrays;
/**
* 栈
*/
public class MyStack<E> {
private Object[] data = null;
private int length = 0; // 栈的容量
private int top = -1; // 栈顶的指针
MyStack() {
}
MyStack(int initSize){
if(initSize>=0) {
this.length = initSize;
data = new Object[initSize];
top = -1;
}else {
throw new RuntimeException("初始容量不能小于0"+initSize);
}
}
public boolean push(E e) {
if(top == length-1) {
throw new RuntimeException("栈已经达到最大值");
}else {
data[++top] = e;
return true;
}
}
public E pop() {
if(top == -1) {
throw new RuntimeException("空栈");
}else {
return (E) data[top--];
}
}
public E peek() {
if(top == -1) {
throw new RuntimeException("空栈");
}else {
return (E) data[top];
}
}
public static void main(String[] args) {
MyStack sm = new MyStack(3);
for (int i = 0; i < 3; i++) {
sm.push(i);
}
System.out.println(Arrays.toString(sm.data));
for (int i = 0; i < 3; i++) {
System.out.println(sm.peek());
}
for (int i = 0; i < 3; i++) {
System.out.println(sm.pop());
}
}
}
Stack implemented in Java
Guess you like
Origin blog.csdn.net/weixin_39472101/article/details/111059880
Ranking