java数组实现栈
前言:所谓栈是一种数据结构,其存取数据的特点是后进先出,并且只能在一端(即栈顶top)对数据进行增加和删除操作。就像往一个水桶里放东西一样,只能从入口处(栈顶)存取物品,最先放进去的物品在最底下,最后放进去的物品在最顶上。
就说这么多了,实现起来也很简单。
public class ArrayStack {
private int length; //定义栈的长度
private Object[] array; //存放数据的数组
private int point; //指向栈顶的指针(下标)
//初始化栈
public ArrayStack(int length) {
this.length = length; //指定栈的大小
point = -1; //默认为-1(空栈)
array = new Object[length]; //数组的长度即为栈的大小
}
//向栈存放元素,即压栈
public void push(Object obj) throws Exception {
if (point == array.length - 1) {
throw new Exception("栈已经满了");
}
array[++point] = obj;
}
//从栈里取元素,即弹栈
public Object pop() throws Exception {
if (point == -1) {
throw new Exception("栈已经空了");
}
return array[point--];
}
//遍历栈里的元素
public void out() {
for (Object obj : array) {
System.out.println(obj);
}
}
/*
*
* 测试
*
* */
public static void main(String[] args) throws Exception {
ArrayStack arrayStack = new ArrayStack(5);
for (int i = 0; i < 5; i++) {
arrayStack.push(i);
}
arrayStack.pop(); //弹栈
arrayStack.push("test"); //压栈
arrayStack.out(); //查看栈内所有元素
}
}
打印结果为
0
1
2
3
test