forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move code for Stack ArrayList from Stacks.java to StackArrayList.java
- Loading branch information
1 parent
4bbc39f
commit bbbf63c
Showing
1 changed file
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
import java.util.ArrayList; | ||
|
||
/** | ||
* This class implements a Stack using an ArrayList. | ||
* | ||
* 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. | ||
* | ||
* 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 | ||
*/ | ||
public static void main(String[] args) { | ||
StackArrayList myStackArrayList = new StackArrayList(); //Declare a stack of maximum size 4 | ||
//Populate the stack | ||
myStackArrayList.push(5); | ||
myStackArrayList.push(8); | ||
myStackArrayList.push(2); | ||
myStackArrayList.push(9); | ||
|
||
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<Integer> stackList; | ||
|
||
/** | ||
* Constructor | ||
*/ | ||
public StackArrayList(){ | ||
stackList = 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){ | ||
stackList.add(value); | ||
} | ||
|
||
/** | ||
* Pops last element of list which is indeed | ||
* the top for Stack | ||
* | ||
* @return Element popped | ||
*/ | ||
public int pop(){ | ||
|
||
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; | ||
} | ||
|
||
System.out.print("The stack is already empty "); | ||
return -1; | ||
} | ||
|
||
/** | ||
* Checks for empty Stack | ||
* | ||
* @return true if stack is empty | ||
*/ | ||
public boolean isEmpty(){ | ||
return stackList.isEmpty(); | ||
} | ||
|
||
/** | ||
* Top element of stack | ||
* | ||
* @return top element of stack | ||
*/ | ||
public int peek(){ | ||
return stackList.get(stackList.size()-1); | ||
} | ||
} |