Complete the method definitions in linkedqueue.java

Assignment Help JAVA Programming
Reference no: EM13772093

A Linked Queue Implementation

File QueueADT.java contains a Java interface representing a queue ADT. In addition to enqueue(), dequeue(), and isEmpty(), this interface contains two methods that are not described in the book - isFull () and size().

//*********************************************************
// QueueADT.java
// The classic FIFO queue interface.
//*********************************************************

public interface QueueADT

{
//---------------------------------------------
// Puts item on end of queue.
//---------------------------------------------

public void enqueue(Object item);
//---------------------------------------------
// Removes and returns object from front of queue.
//---------------------------------------------

public Object dequeue();
//---------------------------------------------
// Returns true if queue is empty.
//---------------------------------------------
publicbooleanisEmpty();
//---------------------------------------------
// Returns true if queue is full.
//---------------------------------------------
publicbooleanisFull();
//---------------------------------------------
// Returns the number of elements in the queue.
//---------------------------------------------

File LinkedQueue.java contains a skeleton for a linked implementation of this interface; it also includes a toString() method that returns a string containing the queue elements, one per line.

// LinkedQueue.java
// A linked-list implementation of the classic FIFO queue interface.
//***********************************************************
public class LinkedQueue implements QueueADT
{
private Node front, back;
privateintnumElements;
//---------------------------------------------
// Constructor; initializes the front and back pointers
// and the number of elements.
//---------------------------------------------
publicLinkedQueue()
{
}
//---------------------------------------------
// Puts item on end of queue.
//---------------------------------------------
public void enqueue(Object item)
{
}
//---------------------------------------------
// Removes and returns object from front of queue.
//---------------------------------------------
public Object dequeue()
{
Object item = null;
}
//---------------------------------------------
// Returns true if queue is empty.
//---------------------------------------------
publicbooleanisEmpty()
{
}
//---------------------------------------------
// Returns true if queue is full, but it never is.
//---------------------------------------------
publicbooleanisFull()
{
}
//---------------------------------------------
// Returns the number of elements in the queue.
//---------------------------------------------
publicint size()
{
}
//---------------------------------------------
// Returns a string containing the elements of the queue
// from first to last
//---------------------------------------------
public String toString()
{
String result = "\n";
Node temp = front;
while (temp != null)
{
result += temp.getElement() + "\n";
temp = temp.getNext();
}
return result;
}
}
It depends on the Node class in Node.java. (This could also be defined as an inner class.) Collections
//************************************************************
// Node.java
// A general node for a singly linked list of objects.
//************************************************************
public class Node
{
private Node next;
private Object element;
//-------------------------------------------------------
// Creates an empty node
//-------------------------------------------------------
public Node()
{
next = null;
element = null;
}
//-------------------------------------------------------
// Creates a node storing a specified element
//-------------------------------------------------------
public Node(Object element)
{
next = null;
this.element = element;
}
//-------------------------------------------------------
// Returns the node that follows this one
//-------------------------------------------------------
public Node getNext()
{
return next;
}
//-------------------------------------------------------
// Sets the node that follows this one
//-------------------------------------------------------
public void setNext(Node node)
{
next = node;
}
//-------------------------------------------------------
// Returns the element stored in this node
//-------------------------------------------------------
public Object getElement()
{
return element;
}
//-------------------------------------------------------
// Sets the element stored in this node
//-------------------------------------------------------
public void setElement(Object element)
{
this.element = element;
}
}
File TestQueue.java contains a simple test program.
//**********************************************************
// TestQueue
// A driver to test the methods of the QueueADT implementations.
//**********************************************************
public class TestQueue
{
public static void main(String[] args)
{
QueueADT q = new LinkedQueue();
System.out.println("\nEnqueuing chocolate, cake, pie, truffles:");
q.enqueue("chocolate");
q.enqueue("cake");
q.enqueue("pie");
q.enqueue("truffles");
System.out.println("\nHere's the queue: " + q);
System.out.println("It contains " + q.size() + " items.");
System.out.println("\nDequeuing two...");
System.out.println(q.dequeue());
System.out.println(q.dequeue());
System.out.println("\nEnqueuing cookies, profiteroles, mousse, cheesecake,
ice cream:");
q.enqueue("cookies");
q.enqueue("profiteroles");
q.enqueue("mousse");
q.enqueue("cheesecake");
q.enqueue (" ice cream");
System.out.println("\nHere's the queue again: " + q);
System.out.println("Now it contains " + q.size() + " items.");
System.out.println("\nDequeuing everything in queue");
while (!q.isEmpty())
System.out.println(q.dequeue());
System.out.println("\nNow it contains " + q.size() + " items.");
if (q.isEmpty())
System.out.println("Queue is empty!");
else
System.out.println("Queue is not empty -- why not??!!");
}
}

Complete the method definitions in LinkedQueue.java. Some things to think about:

• In enqueue() and dequeue() you have to maintain both the front and back pointers - this takes a little thought. In particular, in enqueue be careful of the case where the queue is empty and you are putting the first item in. This case requires special treatment (think about why).

• The easiest way to implement the size() method is to keep track of the number of elements as you go with the numElements variable - just increment this variable when you enqueue an element and decrement it when you dequeue an element.

• A linked queue is never full, so isFull() always returns false. Easy! Study the code in TestQueue.java so you know what it is doing, then compile and run it. Correct any problems in your Linked Queue class.

Reference no: EM13772093

Questions Cloud

Compare lord krishnas teachings with socratess teachings : Compare and contrast Lord Krishna's teachings in the "Bhagavad Gita" with Socrates's teachings to Crito in Plato's "Crito." What are the values each teaches?
Type of respiratory protection device : Select the preferred type of respiratory protection device and identify which standardized OSHA filter color the device should be fitted.
Describe the distinctions between jails and prisons : Write a 200- to 300-word response in which you describe the distinctions between jails and prisons. Address the following in your comparison: Identify the four types of prisons
What is the half-life of a first order reaction : What is the half-life of a first order reaction if 75.0% of the reactant has been consumed after 60 minutes?
Complete the method definitions in linkedqueue.java : Complete the method definitions in LinkedQueue.java. Some things to think about- In enqueue() and dequeue() you have to maintain both the front and back pointers - this takes a little thought. In particular, in enqueue be careful of the case where..
Describe the characteristics of criminal incident you found : The Crime (Describe the characteristics of the criminal incident you found, then describe what we know about this type of crime more generally. . . prevalence, trends, costs, etc.)
Scientific method to analyze environmental decisions : What is zero population growth? Is this a reasonable and attainable goal for the global human population?
Why do we call economics a scientific discipline : 1. Why do we call economics a scientific discipline? Explain. 2. Why are "scarcity" and "choice" central to economics?
Prepear a presentation that evaluate current banking system : Prepear a presentation that evaluate current banking system and make it more efficient as well as safer through IT. Our goal is to replace the cumbersome and unsafe method of using a card and id with fingerprint scanners.

Reviews

Write a Review

JAVA Programming Questions & Answers

  Write a mathematical recursive definition

Write a mathematical, recursive definition of p(n) - Prove that your answer to Part a is correct by using mathematical induction.

  Write function in javascript to compute person-s gross pay

Write the function using JavaScript syntax to compute a person's gross pay for a week. The function should receive the number of hours worked and the rate of pay per hour.

  Create to determine how much either joe or jim

What type of equation would you create to determine how much either Joe or Jim makes separately? What equation is needed in Java (ignoring the $ symbol)? What data type is needed need for this equation?

  Implement the nested loops

The user has also already entered a mystery number they want the following series to calculate based upon their current numbers (also relatively logical in size).

  Write program to keep track of a hardware stores inventory

Write a program to keep track of a hardware store's inventory. The store sells various items. For each item in the store, the following information is kept: item ID, item name, number of pieces in stock, manufacturer's price of the item, and the s..

  Write a java program called calctickets

write a java program called CalcTickets that prompts (asks) the user to enter a ticket number. The format of a valid ticket is C[C]DDDDD[C][C]

  Write a program counter.java that is a thread

Write a program Counter.java that is a Thread that counts up to a limit with random pauses in between each count.

  Create a class named blooddata

Create a class named BloodData that includes fields that hold a blood type (the four blood types are O, A, B, and AB) and an Rh factor

  Java file input and outputnbspcreate a file that contains

java file input and outputnbspcreate a file that contains your favorite movie quote. use a text editor such as notepad

  Create an array of date objects

Create an array of Date objects of size 4. Initialize the array by using a loop. In the loop, use the Scanner.nextLine() method to input a date as a string, convert it to a date by using the toDate() method, and assign the result to an element in ..

  String that contains at least five letters

Write an application that prompts the user for a String that contains at least five letters and at least five digits. Continuously reprompt the user until a valid String is entered. Display a message indicating whether the user was successful or did ..

  Write a java program to perform matrix multiplication

Write a java program to perform matrix multiplication - Your code will need to be able to read in these files, place the contents of each file into separate two-dimensional arrays and then perform the needed multiplication and place the output of t..

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd