So in this post no more about stack its all about queues. When talking about queues the first thing that comes in to our mind is the movie queue. What happens there is the earlier you come the best chance of getting a good seat. Likewise in here this data structure is also like a movie queue. It serves elements in First In First Out (FIFO) basis. The elements are added in the rear and must be remove prom the front.
That's right in stacks we had our concern only on the top element but here we need to keep our concern on two elements rear and front.
The results would be as like this:
That's right in stacks we had our concern only on the top element but here we need to keep our concern on two elements rear and front.
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | public class QueueOne { private int MaxSize; // size of the array private int[] arr; // the queue private int rear; // the back element private int front; // the front element private int elementnum; // number of elements public QueueOne(int x){ // initiating the queue with constructor MaxSize = x; arr = new int[MaxSize]; front = 0; // no front element rear = -1; //no back element elementnum = 0; // initially 0 elemets } /* ============== functions ============= */ public boolean isFull(){ return (elementnum == MaxSize); } public boolean isEmpty(){ return (elementnum == 0); } public void insert(int i){ if (isFull() == false){ // chacks stack is full arr[++rear] = i; elementnum++; }else System.out.println("This stack is full"); } public int remove(){ if(isEmpty() == false){ elementnum--; //reduze the size by one return (arr[front++]); }else System.out.println("This stack is Empty"); return 0; } public int peekFront(){ if(isEmpty() == false){ return (arr[front]); }else return 0; } public int peekRear(){ if (isEmpty() == false){ return (arr[rear]); }else return 0; } public int size(){ return(elementnum); // return the queue size } public static void main(String[] args) { QueueOne Q = new QueueOne(6); Q.insert(20); Q.insert(25); Q.insert(70); Q.insert(125); System.out.println("Front "+Q.peekFront()); System.out.println("rear "+Q.peekRear()); System.out.println("Size " +Q.size()); Q.remove(); System.out.println("Front "+Q.peekFront()); System.out.println("rear "+Q.peekRear()); System.out.println("Size " +Q.size()); } } |
The results would be as like this:
Highlighted ones are before removing an element