下面是Java实现顺序栈的示例代码的完整攻略。
什么是顺序栈
顺序栈是一种使用数组实现的栈,也称作数组栈。其基本特点是后进先出,即最后进栈的元素最先出栈。
顺序栈的实现思路
- 顺序栈需要使用数组保存元素,因此先声明一个数组;
- 定义一个变量top表示栈顶元素的下标,初始值为-1;
- 入栈操作时,将元素插入到数组中,top的值加1;
- 出栈操作时,将栈顶元素弹出,top的值减1。
顺序栈示例代码
public class ArrayStack {
private int[] stack; //数组
private int top = -1; //初始化为-1,表示栈为空
public ArrayStack(int capacity) { //创建指定大小的数组栈
stack = new int[capacity];
}
public void push(int value) { //入栈操作
if (top >= stack.length - 1) {
throw new RuntimeException("栈已满");
}
stack[++top] = value;
}
public int pop() { //出栈操作
if (top < 0) {
throw new RuntimeException("栈为空");
}
return stack[top--];
}
public int peek() { //查看栈顶元素
if (top < 0) {
throw new RuntimeException("栈为空");
}
return stack[top];
}
public boolean isEmpty() { //判断栈是否为空
return top < 0;
}
public boolean isFull() { //判断栈是否已满
return top >= stack.length - 1;
}
}
示例说明一
假设我们创建了一个容量为5的顺序栈,现在依次将元素1、2、3、4、5入栈,然后再将栈顶元素依次弹出并打印出来。代码如下:
ArrayStack stack = new ArrayStack(5);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(!stack.isEmpty()){
System.out.println(stack.pop());
}
执行上述代码的输出结果是:
5
4
3
2
1
示例说明二
假设我们创建了一个容量为3的顺序栈,现在依次将元素1、2、3、4依次入栈。由于栈的容量已满,因此入栈操作会抛出RuntimeException: 栈已满
的异常。代码如下:
ArrayStack stack = new ArrayStack(3);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
执行上述代码会抛出如下异常信息:
Exception in thread "main" java.lang.RuntimeException: 栈已满
at ArrayStack.push(ArrayStack.java:18)
at Main.main(Main.java:9)
以上就是Java实现顺序栈示例代码的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现顺序栈的示例代码 - Python技术站