版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40833790/article/details/90603004
自定义栈代码
public class MyStack {
private int[] elements;
public MyStack(){
elements = new int[0];
}
/**
* 压入一个元素
* @param element
*/
public void push(int element){
int[] newArr = new int[elements.length+1];
for (int i = 0; i < elements.length; i++) {
newArr[i] = elements[i];
}
newArr[newArr.length-1] = element;
elements = newArr;
}
/**
* 出栈
*/
public int pop(){
if(elements.length == 0){
throw new RuntimeException("栈中元素为空");
}
int target = elements[elements.length-1];
int[] newArr = new int[elements.length-1];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = elements[i];
}
elements = newArr;
return target;
}
/**
* 取出栈顶元素
* @return
*/
public int peek(){
if(elements.length == 0){
throw new RuntimeException("栈中元素为空");
}
return elements[elements.length-1];
}
/**
* 判断栈中是否为空
* @return
*/
public boolean isEmpty(){
return elements.length == 0;
}
/**
* 查看栈中元素
*/
public void show(){
System.out.println(Arrays.toString(elements));
}
}