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);
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.