So done with Push and Pop. Then lest go further with some more functions. Here I'm gonna present the code for peek in a stack, check if its empty and check if its full.
Peek is just having a look at the top element in the stack. Wait so does the pop , what's the difference? The difference is pop removes the element and peek does not, it only gives a sneak peek.
Since the other two are more obvious Lets get straight to code:
Here in the main method what I've done is populate the stack untill it becomes full. Then check if its empty (return false), Then check if its full (returns true). The Print "This stack is full". If you bit into experimenting go ahead. remove one element then it will only peek into the top element. Remove all the elements, then it will return "This stack is empty"
One other thing always remember that the array index is one less than the count we take. i.e. arr[0] is the 1st element.
Peek is just having a look at the top element in the stack. Wait so does the pop , what's the difference? The difference is pop removes the element and peek does not, it only gives a sneak peek.
Since the other two are more obvious Lets get straight to code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | public class StackA { private int MaxSize; // size of the stack private int[] arr; // the stack private int top; // the top element public StackA(int s){ // constructor initiate stack MaxSize = s; // assign the size arr = new int[s];//creating the stack top = -1; // initial top element } public void push(int k){ arr[++top] = k; //pre incrementing top, post incrementing will give ArryOutOfBoundException } public void pop(){ System.out.println(arr[top--]); } public void peek(){ System.out.println("the top element"); System.out.println(arr[top]); } public boolean isEmpty(){ return (top == -1); } public boolean isFull(){ return (top == (MaxSize-1)); } public static void main(String[] args) { StackA A = new StackA(4); //creating object A.push(3); //pushing 3 to the top A.push(5); //pushing 5 to the top A.push(7); //pushing 7 to the top A.push(8); //pushing 8 to the top if (A.isEmpty() == true){ System.out.println("This stack is empty"); }else { if(A.isFull() == true){ System.out.println("This stack is full"); }else{ A.peek(); } } } } |
Here in the main method what I've done is populate the stack untill it becomes full. Then check if its empty (return false), Then check if its full (returns true). The Print "This stack is full". If you bit into experimenting go ahead. remove one element then it will only peek into the top element. Remove all the elements, then it will return "This stack is empty"
One other thing always remember that the array index is one less than the count we take. i.e. arr[0] is the 1st element.