Question

In: Computer Science

You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write a...

You may not use the java.util.Stack class.
You may not use the java.util.Queue class.

Write a method public static Object removeSecond (): It removes and returns the element just behind the front element. Precondition: The queue has at least two elements.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

// 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
////////////////////////////////////////////////////////////////

ONLY FOR TESTING, DO NOT CHANGE ANYTHING IN QUEUETEST.JAVA

public class QueueTest
{
   public static void main(String[] args)
      {
      Queue theQueue = new Queue(20);  // queue holds 5 items

      theQueue.insert(10);            // insert 4 items
      theQueue.insert(20);
      theQueue.insert(30);
      theQueue.insert(40);

      theQueue.showQueue();
      
      System.out.println("Removing 3 items");
      theQueue.remove();              // remove 3 items
      theQueue.remove();              //    (10, 20, 30)
      theQueue.remove();
      
      theQueue.showQueue();

      System.out.println("Inserting 4 more items");
      theQueue.insert(50);            // insert 4 more items
      theQueue.insert(60);            //    (wraps around)
      theQueue.insert(70);
      theQueue.insert(80);
      theQueue.showQueue();

      System.out.println("Calling removeSecond()");
      long second = theQueue.removeSecond();
      theQueue.showQueue();

      }  // end main()
   }  

Solutions

Expert Solution

Here is the completed code for this problem. Only the modified Queue class is attached. Comments are included, go through it, learn how things work and let me know if you have any doubts or if you need anything to change. If you are satisfied with the solution, please rate the answer. If not, PLEASE let me know before you rate, I’ll help you fix whatever issues. Thanks

Note: showQueue method is also implemented, because your test program needs that to compile correctly.


// Queue.java



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;
        }

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

        // method to remove and return second element, assuming queue has at least 2
        // elements
        public long removeSecond() {
                // taking a backup of current front element
                long front_data = queArray[front];
                // advancing front index, wrapping around if necessary
                front = (front + 1) % maxSize;
                // taking a backup of data at current front index, which will be the
                // second element
                long second_data = queArray[front];
                // replacing current front element with previous front element
                queArray[front] = front_data;
                // updating nItems
                nItems--;
                // returning removed data
                return second_data;
        }
        
        //method to print the queue elements
        public void showQueue() {
                int index = front;
                for (int i = 0; i < nItems; i++) {
                        System.out.print(queArray[index] + " ");
                        index = (index + 1) % maxSize;
                }
                System.out.println();
        }
} // end class Queue

/*OUTPUT*/

10 20 30 40 
Removing 3 items
40 
Inserting 4 more items
40 50 60 70 80 
Calling removeSecond()
40 60 70 80 

Related Solutions

You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write a...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write a method public static void removeDownTo (long n): It pops all values off the stack down to but not including the first element it sees that is equal to the second parameter. If none are equal, leave the stack empty. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // stack.java // demonstrates stacks //////////////////////////////////////////////////////////////// class StackX { private int maxSize; // size of stack array private long[] stackArray; private int top; //...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Ex1: Write...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Ex1: Write a program that converts a decimal to binary using a stack. My professor gave me this question to code, is this even possible? if it is can someone code it, in java.
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write method...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write method showStack(): It displays the contents of the stack starting with the first inserted element to the last. The stack would contain the same elements after showStack(). . If for example if to an empty stackx we push(20) then push(30) showStack() would print 20 30 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // stack.java // demonstrates stacks // to run this program: C>java StackApp //////////////////////////////////////////////////////////////// class StackX { private int maxSize;...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write method...
You may not use the java.util.Stack class. You may not use the java.util.Queue class. Write method showStack(): It displays the contents of the stack starting with the first inserted element to the last. The stack would contain the same elements after showStack(). . If for example if to an empty stackx we push(20) then push(30) showStack() would print 20 30 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // stack.java // demonstrates stacks // to run this program: C>java StackApp //////////////////////////////////////////////////////////////// class StackX { private int maxSize;...
import java.util.LinkedList; import java.util.Queue; import java.time.*; public class CheckOutLine { /** This is the main function...
import java.util.LinkedList; import java.util.Queue; import java.time.*; public class CheckOutLine { /** This is the main function for the program */ public static void main() { System.out.println("\n\tBegin CheckOutLine Demo\n"); System.out.println("\nCreating a Queue called \"register\" based on a LinkedList"); Queue<Customer> register = new LinkedList<Customer>();    System.out.println("\nAdding Customers to the Register queue"); // 1. TO DO: add five or more customers to the register line (5 Pts) // format: register.add(new Customer(name, checkout time));                System.out.printf("Register line has %d customers\n",...
You are to write a class named Rectangle. You must use separate files for the header...
You are to write a class named Rectangle. You must use separate files for the header (Rectangle.h) and implementation (Rectangle.cpp) just like you did for the Distance class lab and Deck/Card program. You have been provided the declaration for a class named Point. Assume this class has been implemented. You are just using this class, NOT implementing it. We have also provided a main function that will use the Point and Rectangle classes along with the output of this main...
Java program Reverse polish notation: using stack - You can use the Stack included in java.util.Stack...
Java program Reverse polish notation: using stack - You can use the Stack included in java.util.Stack (or your own implementation) for this problem. Reverse Polish notation is a notation where every operator follows all of its operands. For example, an expression (1+2)*(5+4) in the conventional Polish notation can be represented as 1 2 + 5 4 + * in the Reverse Polish notation. One of advantages of the Reverse Polish notation is that it is parenthesis-free. Write a program which...
write the program in java. Demonstrate that you understand how to use create a class and...
write the program in java. Demonstrate that you understand how to use create a class and test it using JUnit Let’s create a new Project HoursWorked Under your src folder, create package edu.cincinnatistate.pay Now, create a new class HoursWorked in package edu.cincinnatistate.pay This class needs to do the following: Have a constructor that receives intHours which will be stored in totalHrs Have a method addHours to add hours to totalHrs Have a method subHours to subtract hours from totalHrs Have...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {       ...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {        Stack<Integer> new_stack = new Stack<>();/* Start with the empty stack */        Scanner scan = new Scanner(System.in);        int num;        for (int i=0; i<10; i++){//Read values            num = scan.nextInt();            new_stack.push(num);        } System.out.println(""+getAvg(new_stack));    }     public static int getAvg(Stack s) {        //TODO: Find the average of the elements in the...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {       ...
import java.util.Stack; import java.util.Scanner; class Main { public static void main(String[] args)    {        Stack<Integer> new_stack = new Stack<>();/* Start with the empty stack */        Scanner scan = new Scanner(System.in);        int num;        for (int i=0; i<10; i++){//Read values            num = scan.nextInt();            new_stack.push(num);        }        int new_k = scan.nextInt(); System.out.println(""+smallerK(new_stack, new_k));    }     public static int smallerK(Stack s, int k) {       ...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT