From 23a099d23202172fe6668526d6397b385739da91 Mon Sep 17 00:00:00 2001 From: Yash Bhansali Date: Fri, 10 Mar 2017 00:41:42 +0530 Subject: [PATCH] Stack List Implementation --- data_structures/Stacks.java | 87 +++++++++++++++++++++++++++++++------ 1 file changed, 74 insertions(+), 13 deletions(-) diff --git a/data_structures/Stacks.java b/data_structures/Stacks.java index 7fdf6133..18139147 100644 --- a/data_structures/Stacks.java +++ b/data_structures/Stacks.java @@ -38,20 +38,81 @@ class Stack{ 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[]){ - Stack myStack = new Stack(4); //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(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 + Stack myStack = new Stack(4); //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 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 + myStack2.push(5); + myStack2.push(8); + myStack2.push(2); + myStack2.push(9); + + System.out.println("*********************Stack List Implementation*********************"); + System.out.println(myStack2.isEmpty()); //will print false + System.out.println(myStack2.peek()); //will print 9 + System.out.println(myStack2.pop()); //will print 9 + System.out.println(myStack2.peek()); // will print 2 + System.out.println(myStack2.pop()); //will print 2 } -} \ No newline at end of file +}