From b58bf59f2c2f3e40f381b4ce69a7d4f3a95235cb Mon Sep 17 00:00:00 2001 From: Yash Bhansali Date: Fri, 10 Mar 2017 00:35:22 +0530 Subject: [PATCH] Stack ArrayList Implementation --- data_structures/Stacks.java | 62 ++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/data_structures/Stacks.java b/data_structures/Stacks.java index 7fdf6133fb45..6465533d29d5 100644 --- a/data_structures/Stacks.java +++ b/data_structures/Stacks.java @@ -38,6 +38,50 @@ public void makeEmpty(){ //Doesn't delete elements in the array but if you call top = -1; //push method after calling makeEmpty it will overwrite previous values } } + + +/* This is ArrayList Implementation of stack , Where size is not a problem we can extend the stack as much as we want*/ +class Stack2{ + + + ArrayList stackList; + + Stack2(){ //constructor + stackList=new ArrayList<>(); + } + + + void push(int value){ //adds value to the end of list which is the top for stack + stackList.add(value); + } + + int pop(){ //pops last element of list which is indeed the top for Stack + + if(!isEmpty()){ // checks for an empty Stack + + int popValue=stackList.get(stackList.size()-1); + stackList.remove(stackList.size()-1); //removes the poped element from the list + return popValue; + } + else{ + System.out.print("The stack is already empty "); + return -1; + } + + } + + boolean isEmpty(){ //checks for empty Stack + if(stackList.isEmpty()) + return true; + + else return false; + + } + + int peek(){ //top element of stack + return stackList.get(stackList.size()-1); + } + } //Example public class Stacks{ public static void main(String args[]){ @@ -48,10 +92,26 @@ public static void main(String args[]){ myStack.push(2); myStack.push(9); + System.out.println("*********************Stack Array Implementation*********************"); System.out.println(myStack.isEmpty()); //will print false System.out.println(myStack.isFull()); //will print true System.out.println(myStack.peek()); //will print 9 System.out.println(myStack.pop()); //will print 9 System.out.println(myStack.peek()); // will print 2 + + Stack2 myStack2 = new Stack2(); //Declare a stack of maximum size 4 + //Populate the stack + myStack.push(5); + myStack.push(8); + myStack.push(2); + myStack.push(9); + + System.out.println("*********************Stack List Implementation*********************"); + System.out.println(myStack.isEmpty()); //will print false + System.out.println(myStack.peek()); //will print 9 + System.out.println(myStack.pop()); //will print 9 + System.out.println(myStack.peek()); // will print 2 + System.out.println(myStack.pop()); //will print 2 + } -} \ No newline at end of file +}