In: Computer Science
Lab Assignment
Write a Java program that implements a queue in a hospital. I want your program to ask the user to enter the number of patients then enter the patient number starting from 110 till the end of the queue then print number of patients waiting in the queue.
Suppose you have a queue D containing the numbers (1,2,3,4,5,6,7,8), in this order. Suppose further that you have an initially empty Stack S. Give a code fragment that uses S, to store the elements in the order (8,7,6,5,4,3,2,1) in D.
Q. What values are returned during the following sequence of queue operations, if executed on an initially empty queue?
enqueue(5), enqueue(3), dequeue(),
enqueue(2), enqueue(8), dequeue(), dequeue(), enqueue(9), enqueue(1),
dequeue(), enqueue(7), enqueue(6), dequeue(), dequeue(), enqueue(4),
dequeue(), dequeue().
Code:
import java.util.*;
class QueueClass {
int[] queueType;
private int size;
static int MAX = 10;
public QueueClass() {
size = 0;
queueType = new int[MAX];
}
public void enqueue(int v) {
if (isFull()) return;
queueType[size] = v;
size++;
}
public int dequeue() {
if (!isEmpty()) {
int v = queueType[0];
for (int i = 0; i < size - 1; i++) {
queueType[i] = queueType[i + 1];
}
size--;
return v;
}
return -1;
}
public boolean isEmpty() {
return size == 0;
}
public boolean isFull() {
return size == MAX;
}
public int getSize() {
return size;
}
public void printQueue() {
for (int i = 0; i < size; i++)
System.out.print(queueType[i] + " ");
System.out.println("");
}
}
class TestQueueClass {
public static void main(String[] args) {
// part 1
QueueClass D = new QueueClass();
for (int i = 1; i <= 8; i++)
D.enqueue(i);
System.out.println("Elements in D before using Stack: ");
D.printQueue();
Stack<Integer> S = new Stack<Integer>();
while (!(D.isEmpty()))
S.push(D.dequeue());
while (!(S.empty()))
D.enqueue(S.pop());
System.out.println("\nElements in D after using Stack: ");
D.printQueue();
//part 2
QueueClass q = new QueueClass();
System.out.println("\n\nValue returned after performing operations: ");
q.enqueue(5); q.enqueue(3);
System.out.print(q.dequeue() + " ");
q.enqueue(2); q.enqueue(8);
System.out.print(q.dequeue() + " ");
System.out.print(q.dequeue() + " ");
q.enqueue(9); q.enqueue(1);
System.out.print(q.dequeue() + " ");
q.enqueue(7); q.enqueue(6);
System.out.print(q.dequeue() + " ");
System.out.print(q.dequeue() + " ");
q.enqueue(4);
System.out.print(q.dequeue() + " ");
System.out.print(q.dequeue() + " ");
System.out.println("");
}
}
Output: