package DataStructures.Stacks;import java.util.ArrayList;import java.util.EmptyStackException;/*** This class implements a Stack using an ArrayList.* <p>* A stack is exactly what it sounds like. An element gets added to the top of* the stack and only the element on the top may be removed.* <p>* This is an ArrayList Implementation of a stack, where size is not* a problem we can extend the stack as much as we want.*/public class StackArrayList {/*** Driver Code*/public static void main(String[] args) {StackArrayList stack = new StackArrayList();assert stack.isEmpty();for (int i = 1; i <= 5; ++i) {stack.push(i);assert stack.size() == i;}assert stack.size() == 5;assert stack.peek() == 5 && stack.pop() == 5 && stack.peek() == 4;/* pop elements at the top of this stack one by one */while (!stack.isEmpty()) {stack.pop();}assert stack.isEmpty();try {stack.pop();assert false; /* this should not happen */} catch (EmptyStackException e) {assert true; /* this should happen */}}/*** ArrayList representation of the stack*/private ArrayList<Integer> stack;/*** Constructor*/public StackArrayList() {stack = new ArrayList<>();}/*** Adds value to the end of list which* is the top for stack** @param value value to be added*/public void push(int value) {stack.add(value);}/*** Removes the element at the top of this stack and returns** @return Element popped* @throws EmptyStackException if the stack is empty.*/public int pop() {if (isEmpty()) {throw new EmptyStackException();}/* remove the element on the top of the stack */return stack.remove(stack.size() - 1);}/*** Test if the stack is empty.** @return {@code true} if this stack is empty, {@code false} otherwise.*/public boolean isEmpty() {return stack.isEmpty();}/*** Return the element at the top of this stack without removing it from the stack.** @return the element at the top of this stack.*/public int peek() {if (isEmpty()) {throw new EmptyStackException();}return stack.get(stack.size() - 1);}/*** Return size of this stack.** @return size of this stack.*/public int size() {return stack.size();}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。