Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need to write a method splice2 in this class i leave it blank public class ArrayQueue implements QueueInterface { private T[] queue; private int

I need to write a method splice2 in this class i leave it blank

public class ArrayQueue implements QueueInterface {

private T[] queue;

private int frontIndex;

private int backIndex;

private int initialCapacity = 10;

public ArrayQueue()

{

@SuppressWarnings("unchecked")

T[] tempQueue = (T[]) new Object[10];

queue = tempQueue;

frontIndex = 0;

backIndex = 9;

}

public void enqueue(T newEntry)

{

ensureCapacity();

backIndex = (backIndex + 1) % queue.length;

queue[backIndex] = newEntry;

}

public T dequeue() {

T dequeue = getFront();

queue[frontIndex] = null;

frontIndex = (frontIndex + 1) % queue.length;

return dequeue;

}

public T getFront()

{

if(isEmpty())

throw new IllegalStateException("List is null");

else

return queue[frontIndex];

}

public boolean isEmpty()

{

return frontIndex == ((backIndex + 1) % queue.length);

}

public void clear()

{

@SuppressWarnings("unchecked")

T[] tempQueue = (T[]) new Object [10];

queue = tempQueue;

frontIndex = 0;

backIndex = 9;

}

public void splice(QueueInterface q)

{

while(!q.isEmpty())

this.enqueue(q.dequeue());

}

public void splice2 (ArrayQueue q) {

}

private void ensureCapacity()

{

if(frontIndex == ((backIndex + 2) % queue.length))

{

T[] oldQueue = queue;

int oldSize = oldQueue.length;

int newSize = 2 * oldSize;

@SuppressWarnings("unchecked")

T[] tempQueue = (T[]) new Object[newSize];

for(int i = 0; i < oldSize - 1; i ++)

{

tempQueue[i] = oldQueue[frontIndex];

frontIndex = (frontIndex + 1) % oldSize;

}

queue = tempQueue;

frontIndex = 0;

backIndex = oldSize - 2;

}

}

public String toString()

{

String result = "";

for(int i = 0; i < queue.length; i++)

result += queue[i] + ", ";

return result;

}

}

my question is only part3 how can i implement the splice2 methods for both classes by doing take full advantage of your access to instance variables. other parts already done...

Assignment - Two Queues

Part 1: Create two working versions of the books Queue implementations:

ArrayQueue (Use a circular array with an unused location. Based on section 11.10)

LinkedQueue (Use a two part circular linked chain. Modeled on section 11.20)

Part 2: Add a method named splice to the Queue interface and to each class. The purpose of the splice method is to splice the parameter queue onto the end of the receiving queue. It should have the following signature:

Public void splice(QueueInterface q)

Notice that the parameter is the interface type. The code in splice should be exactly the same for both of your queue classes. It should only use interface methods on itself, and argument q.

Part 3: Add a method named splice2 to each class. This method should accept a class type parameter, and when you write it you should take full advantage of your access to instance variables. The signature would be different in each class. Here are the signatures for ArrayQueue and LinkedQueue respectively. Notice the parameter types differ:

Public void splice2(ArrayQueue q)

Public void splice2(LinkedQueue q)

What to Submit: Submit the following 5 files:

ArrayQueue.java

LinkedQueue.java

QueueInterface.java

A simple testing class that invokes all for methods: splice on each class, and splice2 on each class.

A text file with a brief description of your experience for the graders.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

In an Excel Pivot Table, how is a Fact/Measure Column repeated?

Answered: 1 week ago