Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a method for the Queue class in the queue.java program (Listing 4.4) that

ID: 3594067 • Letter: W

Question

Write a method for the Queue class in the queue.java program (Listing 4.4) that displays the contents of the queue. Note that this does not mean simply displaying the contents of the underlying array. You should show the queue contents from the first item inserted to the last, without indicating to the viewer whether the sequence is broken by wrapping around the end of the array. Be careful that one item and no items display properly, no matter where front and rear are.

Listing 4.4

// queue.java
// demonstrates queue
// to run this program: C>java QueueApp
////////////////////////////////////////////////////////////////
class Queue
{
private int maxSize;
private long[] queArray;
private int front;
private int rear;
private int nItems;
//--------------------------------------------------------------
public Queue(int s) // constructor
{
maxSize = s;
queArray = new long[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
//--------------------------------------------------------------
public void insert(long j) // put item at rear of queue
{
if(rear == maxSize-1) // deal with wraparound
rear = -1;
queArray[++rear] = j; // increment rear and insert
nItems++; // one more item
}
//--------------------------------------------------------------
public long remove() // take item from front of queue
{
long temp = queArray[front++]; // get value and incr front
if(front == maxSize) // deal with wraparound
front = 0;
nItems--; // one less item
return temp;
}
//--------------------------------------------------------------
public long peekFront() // peek at front of queue
{

return queArray[front];
}
//--------------------------------------------------------------
public boolean isEmpty() // true if queue is empty
{
return (nItems==0);
}
//--------------------------------------------------------------
public boolean isFull() // true if queue is full
{
return (nItems==maxSize);
}
//--------------------------------------------------------------
public int size() // number of items in queue
{
return nItems;
}
//--------------------------------------------------------------
} // end class Queue
////////////////////////////////////////////////////////////////
class QueueApp
{
public static void main(String[] args)
{
Queue theQueue = new Queue(5); // queue holds 5 items
theQueue.insert(10); // insert 4 items
theQueue.insert(20);
theQueue.insert(30);
theQueue.insert(40);
theQueue.remove(); // remove 3 items
theQueue.remove(); // (10, 20, 30)
theQueue.remove();
theQueue.insert(50); // insert 4 more items
theQueue.insert(60); // (wraps around)
theQueue.insert(70);
theQueue.insert(80);
while( !theQueue.isEmpty() ) // remove and display
{ // all items

long n = theQueue.remove(); // (40, 50, 60, 70, 80)
System.out.print(n);
System.out.print(“ “);
}
System.out.println(“”);
} // end main()
} // end class QueueApp

You MUST Use THIS MAIN below:

public static void main(String[] args) throws IOException
{
Queue theQueue = new Queue(5); // queue holds 5 items
long value;
while (true)
{
System.out.print("Enter first letter of ");
System.out.print("Show, insert, remove: ");
int choice = getChar ();
switch (choice)
{
case 's':
theQueue.display();
break;
case 'i':
if (!theQueue.isFull())
{
System.out.print("Enter value to insert: ");
value = getLong();
theQueue.insert(value);
theQueue.display();
}
else
System.out.print("***Queue is full *** ");
break;
case 'r':
if (!theQueue.isEmpty())
{
value = theQueue.remove();
System.out.println("Remove " + value);
theQueue.display();
}
else
System.out.print("***Queue is empty*** ");
break;
default:

System.out.print("Invalid entry ");
}
}
}
}

The output MUST look like this:

Enter first letter of show,insert,remove: s

Array: 0 0 0 0 0

Queue:

Enter First letter of show,insert, remove: i

Enter value to insert: 25

Array: 25 0 0 0 0

Queue: 25

Enter first letter of show, insert, remove: i

Enter value to insert: 33

Array: 25 33 0 0 0

Queue: 25 33

Enter first letter of show, insert, remove: i

Enter value to insert: 77

Array: 25 33 77 0 0

Queue: 25 33 77

Enter first letter of show, insert, remove: i

Enter value to insert: 21

Array: 25 33 77 21 0

Queue: 25 33 77 21

Enter first letter of show, insert, remove: r

Removed 25

Array: 25 33 77 21 0

Queue: 33 77 21

Enter first letter of show, insert, remove: r

Removed 33

Array: 25 33 77 21 0

Queue: 77 21

Enter first letter of show, insert, remove: i

Enter value to insert: 15

Array: 25 33 77 21 15

Queue: 77 21 15

Enter first letter of show, insert, remove: i

Enter value to insert: 88

Array: 88 33 77 21 15

Queue: 77 21 15 88

Enter first letter of show, insert, remove: i

Enter value to insert: 99

Array: 88 99 77 21 15

Queue: 77 21 15 88 99

Enter first letter of show, insert, remove: r

Removed 77

Array: 88 99 77 21 15

Queue: 21 15 88 99

THank you for your help

Explanation / Answer

Please find my implementation.

import java.util.Arrays;

//queue.java

//demonstrates queue

//to run this program: C>java QueueApp

////////////////////////////////////////////////////////////////

public class Queue

{

   private int maxSize;

   private long[] queArray;

   private int front;

   private int rear;

   private int nItems;

   //--------------------------------------------------------------

   public Queue(int s) // constructor

   {

       maxSize = s;

       queArray = new long[maxSize];

       front = 0;

       rear = -1;

       nItems = 0;

   }

   //--------------------------------------------------------------

   public void insert(long j) // put item at rear of queue

   {

       if(rear == maxSize-1) // deal with wraparound

           rear = -1;

       queArray[++rear] = j; // increment rear and insert

       nItems++; // one more item

   }

   //--------------------------------------------------------------

   public long remove() // take item from front of queue

   {

       long temp = queArray[front]; // get value and incr front

       queArray[front] = 0;

       front++;

       if(front == maxSize) // deal with wraparound

           front = 0;

       nItems--; // one less item

       return temp;

   }

   //--------------------------------------------------------------

   public long peekFront() // peek at front of queue

   {

       return queArray[front];

   }

   //--------------------------------------------------------------

   public boolean isEmpty() // true if queue is empty

   {

       return (nItems==0);

   }

   //--------------------------------------------------------------

   public boolean isFull() // true if queue is full

   {

       return (nItems==maxSize);

   }

   //--------------------------------------------------------------

   public int size() // number of items in queue

   {

       return nItems;

   }

   //--------------------------------------------------------------

   public void display() // display content of queue

   {

      

       //System.out.println(Arrays.toString(queArray));

       if(nItems < 1){

           System.out.println("queue is empty");

           return;

       }

       System.out.println("Array: "+Arrays.toString(queArray));

       System.out.print("Queue: ");

       int ft = front;

       for(int i=1; i<=nItems; i++) {

           System.out.print(queArray[ft]+" ");

           ft = (ft+1)%maxSize;

       }

       System.out.println();

   }

   //--------------------------------------------------------------

} // end class Queue

###########

import java.util.Scanner;

public class QueueApp

{

   public static void main(String[] args)

   {

       Queue theQueue = new Queue(5); // queue holds 5 items

       Scanner sc = new Scanner(System.in);

       long value;

       while (true)

       {

           System.out.print("Enter first letter of ");

           System.out.print("Exit, Show, insert, remove: ");

           char choice = sc.next().charAt(0);

           switch (choice)

           {

           case 's':

               theQueue.display();

               break;

           case 'i':

               if (!theQueue.isFull())

               {

                   System.out.print("Enter value to insert: ");

                   value = sc.nextLong();

                   theQueue.insert(value);

                   theQueue.display();

               }

               else

                   System.out.print("***Queue is full *** ");

               break;

           case 'r':

               if (!theQueue.isEmpty())

               {

                   value = theQueue.remove();

                   System.out.println("Remove " + value);

                   theQueue.display();

               }

               else

                   System.out.print("***Queue is empty*** ");

               break;

           case 'e':

               break;

           default:

               System.out.print("Invalid entry ");

           }

          

           if(choice == 'e')

               break;

           System.out.println();

       }

      

       sc.close();

   }

} // end class QueueApp

/*

Sample run:

Enter first letter of Exit, Show, insert, remove: i

Enter value to insert: 43

Array: [43, 0, 0, 0, 0]

Queue: 43

Enter first letter of Exit, Show, insert, remove: i

Enter value to insert: 54

Array: [43, 54, 0, 0, 0]

Queue: 43 54

Enter first letter of Exit, Show, insert, remove: r

Remove 43

Array: [0, 54, 0, 0, 0]

Queue: 54

Enter first letter of Exit, Show, insert, remove: e

*/

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote