package array;
/*
@autor YANG
@date 2021年07月27日18:33
栈(底层使用数组存储数据)
*/
public class Stack {
Object[] elements;
public Stack() {
elements = new Object[0];
}
// 压栈
public void push(Object element) {
// 创建一个新的数组比原数组大一
Object[] newArray = new Object[elements.length + 1];
// 把原数组的元素添加到新数组
for (int i = 0; i < elements.length; i++) {
newArray[i] = elements[i];
}
// 把添加的元素放到新数组中
newArray[elements.length] = element;
elements = newArray;
}
// 弹栈
public Object pop() {
if (elements.length == 0) {
throw new RuntimeException("栈为空!");
}
// 取出栈顶元素
Object emelent = elements[elements.length - 1];
// 创建一个新数组
Object[] newArray = new Object[elements.length - 1];
for (int i = 0; i < elements.length - 1; i++) {
newArray[i] = elements[i];
}
return emelent;
}
// 查看栈顶元素
public Object peek() {
if (elements.length == 0) {
throw new RuntimeException("栈为空!");
}
return elements[elements.length - 1];
}
// 判断栈是否为空
public boolean isEmpty() {
return elements.length == 0;
}
}
Java加深对栈的理解
最新推荐文章于 2023-08-05 11:33:21 发布