diff --git a/DataStructures/Stacks/StackArrayList.java b/DataStructures/Stacks/StackArrayList.java index 666b9ea99..5f7168c63 100644 --- a/DataStructures/Stacks/StackArrayList.java +++ b/DataStructures/Stacks/StackArrayList.java @@ -1,6 +1,7 @@ package DataStructures.Stacks; import java.util.ArrayList; +import java.util.EmptyStackException; /** * This class implements a Stack using an ArrayList. @@ -10,43 +11,49 @@ import java.util.ArrayList; *
* This is an ArrayList Implementation of a stack, where size is not
* a problem we can extend the stack as much as we want.
- *
- * @author Unknown
*/
public class StackArrayList {
/**
- * Main method
- *
- * @param args Command line arguments
+ * Driver Code
*/
public static void main(String[] args) {
-
- StackArrayList myStackArrayList = new StackArrayList();
-
- myStackArrayList.push(5);
- myStackArrayList.push(8);
- myStackArrayList.push(2);
- myStackArrayList.push(9);
+ 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 */
+ }
- System.out.println("*********************Stack List Implementation*********************");
- System.out.println(myStackArrayList.isEmpty()); // will print false
- System.out.println(myStackArrayList.peek()); // will print 9
- System.out.println(myStackArrayList.pop()); // will print 9
- System.out.println(myStackArrayList.peek()); // will print 2
- System.out.println(myStackArrayList.pop()); // will print 2
}
/**
* ArrayList representation of the stack
*/
- private ArrayList