Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA Let Q be a non-empty queue, and let S be an empty stack. Using only the sta

ID: 3839638 • Letter: J

Question

JAVA

Let Q be a non-empty queue, and let S be an empty stack. Using only the stack and queue ADT functions and a single element variable X, write an algorithm to reverse the order of the elements in Q.

This is the required output:

Here is the code that I have so far:

import java.util.StringTokenizer;

public class Main {

public static void main(String[] args) {

Queue<String> q = new AQueue<String>(100);

Stack<String> s = new AStack<String>(100);

String input = "Oranges Apples Bananas Dragonfruites Strawberries Peaches Melons Pears Apricots Watermelons";

StringTokenizer st = new StringTokenizer(input);

while(st.hasMoreTokens())

q.enqueue(st.nextToken());

System.out.println(q);

//you should only use q and s no other arrays or other data structures

//you should nt use a for loop (only while loop)

//you just need two while loops and a print statement

//you should not use any other variable other than whats already on the screen

}

}

Explanation / Answer

import java.util.Queue;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main {

public static void main(String[] args) {
Queue<String> q = new AQueue<String>(100);
Stack<String> s = new AStack<String>(100);
String input = "Oranges Apples Bananas Dragonfruites Strawberries Peaches Melons Pears Apricots Watermelons";
StringTokenizer st = new StringTokenizer(input);
while(st.hasMoreTokens())
q.enqueue(st.nextToken());
System.out.println(q);

int n=0;

while(! q.isEmpty()) {
   n=n+1;
   String e=q.remove();
   s.push(e);
}

while(n>0) {
   n=n-1;
   String e=s.pop();
   q.add(e);
}
System.out.println(input);
}

}