Question

1) [100] Write an array-based implementation of a Queue (generic version) as the data structure and the Queuelnterface define

Book - Data abstraction and problem-solving with Java - Walls and Mirrors 3rd edition

Language - Java

0 0
Add a comment Improve this question Transcribed image text
Answer #1

program code to copy

Test.java

public class Test 
{

    private static Queue<Integer> queue;

    public static void main(String[] args) 
        {
        queue = new Queue();
        for (int i = 0; i < 15; i++) 
                {
            queue.enqueue(i);
        }

        displayQueue();
        System.out.println("\nCount: " +countQueuedItems());
        System.out.println("Sum: " + sumQueuedItems());
        System.out.println("Max: " + maxQueuedItem());
        System.out.println("Min: " + minQueuedItem());
    }

    public static void displayQueue() 
        {
        Integer last = queue.dequeue();
        System.out.println(last);
        queue.enqueue(last);
        Integer item;
        while ((item = queue.dequeue()) != last) 
                {
            System.out.println(item);
            queue.enqueue(item);
        }
        queue.enqueue(last);
    }

    public static int countQueuedItems() 
        {
        Integer last = queue.dequeue();
        queue.enqueue(last);
        int count = 1;
        Integer item;
        while ((item = queue.dequeue()) != last) 
                {
            queue.enqueue(item);
            count++;
        }
        queue.enqueue(last);
        return count;
    }

    public static int sumQueuedItems() 
        {
        Integer last = queue.dequeue();
        queue.enqueue(last);
        int sum = last;
        Integer item;
        while ((item = queue.dequeue()) != last) 
                {
            sum += item;
            queue.enqueue(item);
        }
        queue.enqueue(last);
        return sum;
    }

    public static int maxQueuedItem() 
        {
        Integer last = queue.dequeue();
        queue.enqueue(last);
        int max = last;
        Integer item;
        while ((item = queue.dequeue()) != last) 
                {
            if(item > max)
                max = item;
            queue.enqueue(item);
        }
        queue.enqueue(last);
        return max;
    }

    public static int minQueuedItem() 
        {
        Integer last = queue.dequeue();
        queue.enqueue(last);
        int min = last;
        Integer item;
        while ((item = queue.dequeue()) != last) 
                {
            if(item < min)
                min = item;
            queue.enqueue(item);
        }
        queue.enqueue(last);
        return min;
    }
}


============================================================================

Queue.java

public class Queue<T> implements QueueInterface<T> 
{
    private Node lastNode;

    private class Node 
        {
        private T item;
        private Node next;

        Node(T item, Node next) 
                {
            this.item = item;
            this.next = next;
        }

    }

    public Queue() 
        {
        lastNode = null;
    }

    public boolean isEmpty() 
        {
        return lastNode == null;
    }

    public void enqueue(T item) 
        {
        Node newNode = new Node(item, null);
        if (isEmpty()) 
                {
            newNode.next = newNode;
        }
        else 
                {
            newNode.next = lastNode.next;
            lastNode.next = newNode;
        }
        lastNode = newNode;
    }

    public T dequeue() 
        {
        if (isEmpty()) throw new QueueException("Queue is empty");
        Node firstNode = lastNode.next;
        if(firstNode == lastNode) lastNode = null;
        else lastNode.next = firstNode.next;
        return firstNode.item;
    }

    public void dequeueAll() 
        {
        lastNode = null;
    }

    public T peek() 
        {
        if(isEmpty()) throw new QueueException("Queue is empty");
        return lastNode.item;
    }
}

====================================================================

QueueInterface.java


public interface QueueInterface<T> 
{
    boolean isEmpty();

    void enqueue(T item);

    T dequeue() throws QueueException;

    void dequeueAll();

    T peek();

}


=====================================================

QueueException.java


public class QueueException extends RuntimeException 
{
    public QueueException(String message) 
        {
        super(message);
    }
}

sample output

Problems @ Javadoc B. Declaration Console X <terminated Test [Java Application] C:\Program Files\Java\jrel.8.O_201\bin\javaw.

Add a comment
Know the answer?
Add Answer to:
Book - Data abstraction and problem-solving with Java - Walls and Mirrors 3rd edition Language -...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT