public class HomeworkExercise {
// 这段代码是实现一个可以存放任意类型元素的栈
public static void main(String[] args) {
Object[] a = {1,2,3};
MyStack myStack = new MyStack(a);
myStack.push("li");
// 可以通过一个obj来记下pop的值,之后可以用,不用多次pop
// 可以在栈中设置如果栈为空,返回null,在这里判断一下,如果为空就可以跳出这个循环了
while (true){
Object obj = myStack.pop();
if (obj == null)
return;
else{
System.out.println("此时栈顶的元素为" + obj);
}
}
}
}
//不能加public,加了就要写在别的类包中,一个类包只能写一个public类
/*public */class MyStack{
Object[] elements = new Object[20];
int top = -1;
public MyStack(Object[] elements) {
if (elements.length > this.elements.length){
System.out.println("该数组太大,超过了栈的容量");
return;
}
System.arraycopy(elements,0,this.elements,0,elements.length);
top = elements.length - 1;
}
public void push(Object x){
if(top + 1 >this.elements.length){
System.out.println("该数组已满,无法push数据");
return;
}
this.elements[++top] = x;
}
public Object pop(){
if (top < 0){
System.out.println("栈已空,没有元素可以出栈");
return null;
}
return this.elements[top--];
}
}