For the following code Modify add and poll methods The front

For the following code:

Modify add() and poll() methods. The front and rear indices need to circle back to index 0 whenever the end of the array is reached. Modify the print() method accordingly.

Solution

Answer:

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package main;

/**
*
* @author Elixir_Black
*/
/*For the following code :
Modify add() and poll() methods.
The front and rear indices need to circle back to index 0 whenever the end of the array is reached.
Modify the print() method accordingly.
*/
class ArrayQueue {
   private int data[];
   private int capacity = 100; //maximum capacity for this queue
   private int front; //index of front of queue
   private int back; // index of back of queue
   private int length;

   //constructor
   public ArrayQueue(){
       data = new int[capacity];
       front = 0;
       back = 0;
       length = 0;
   }

   //add an item to the queue
   public void add(int value){
       //add to the back
  
       if (back < capacity){
           data[back] = value;
           back++;
           length++;
       }
       else{
           System.out.println(\"reached maximum capacity\");
       }
   }

public void poll(){
       //add to the back
if (data[0]==-1){
System.out.println(\"Queue is empty\");
}
else {
if (front < capacity && front>=0){
data[front] = -1;
length--;
int counter = 1;
for (int i = 0;i<length;i++){
data[i] = data[counter];
data[counter]=-1;
counter++;
}
back--;
}
else{
System.out.println(\"reached maximum capacity\");
}
}
   }

   public boolean isEmpty(){
       return (length == 0);
   }

   //print the values of the queue
   public void print(){
       for (int i = front; i < back; i++){
           System.out.print(data[i] + \" \");
       }
       System.out.println();
   }
}


public class Part2 {


   public static void main(String[] args){
       int i;
       ArrayQueue q = new ArrayQueue();
       for (i = 0; i<100; i++){
           q.add(i);
       }
       q.add(100);// should print a message, maximum capacity
       q.poll();
       q.add(100);


       for (i = 0; i<95; i++){
           q.poll();
       }
       q.print(); // should print 96 97 98 99 100


       q.add(200);
       q.add(300);
       for (i = 0; i<7; i++)
           q.poll();


       q.poll(); // should print a message, queue is empty


       for (i = 0; i<10; i++)
           q.add(i + 1);


       q.print(); //should print the numbers from 1 to 10


   }


}

For the following code: Modify add() and poll() methods. The front and rear indices need to circle back to index 0 whenever the end of the array is reached. Mod
For the following code: Modify add() and poll() methods. The front and rear indices need to circle back to index 0 whenever the end of the array is reached. Mod
For the following code: Modify add() and poll() methods. The front and rear indices need to circle back to index 0 whenever the end of the array is reached. Mod

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site