This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package linkedList; | |
import java.util.Stack; | |
public class QueueReversal { | |
public static void main(String args[]) throws Exception{ | |
Queue queue = new Queue(); | |
Node a = new Node(); | |
a.setData(1); | |
Node b = new Node(); | |
b.setData(2); | |
Node c = new Node(); | |
c.setData(3); | |
Node d = new Node(); | |
d.setData(4); | |
Node e = new Node(); | |
e.setData(5); | |
e.setNext(null); | |
queue.enQueue(a); | |
queue.enQueue(b); | |
queue.enQueue(c); | |
queue.enQueue(d); | |
queue.enQueue(e); | |
queue.display(); | |
Queue reverseQueue = reverse(queue); | |
System.out.println("reversed queue"); | |
reverseQueue.display(); | |
} | |
public static Queue reverse(Queue queue) throws Exception{ | |
Stack<Node> stack = new Stack<Node>(); | |
while(!queue.isEmpty()){ | |
stack.push(queue.deQueue()); | |
} | |
while(!stack.isEmpty()) { | |
queue.enQueue(stack.pop()); | |
} | |
return queue; | |
} | |
} | |
package linkedList; | |
public class Queue { | |
private Node front; | |
private Node rear; | |
public Node getFront() { | |
return front; | |
} | |
public void setFront(Node front) { | |
this.front = front; | |
} | |
public Node getRear() { | |
return rear; | |
} | |
public void setRear(Node rear) { | |
this.rear = rear; | |
} | |
public boolean isEmpty() { | |
return front == null ; | |
} | |
public void enQueue(Node newNode) { | |
if(isEmpty()) { | |
front = newNode; | |
rear = front; | |
} else { | |
Node temp = rear; | |
temp.setNext(newNode); | |
rear = newNode; | |
rear.setNext(null); | |
} | |
} | |
public Node deQueue() throws Exception{ | |
Node temp; | |
if(isEmpty()) { | |
throw new Exception("Queue EMPTY"); | |
} else { | |
temp = front; | |
front = front.getNext(); | |
} | |
return temp; | |
} | |
public void display() { | |
Node temp = front; | |
while(temp != null){ | |
System.out.print(temp.getData()); | |
temp = temp.getNext(); | |
if(temp != null) | |
System.out.print("->"); | |
} | |
System.out.println(); | |
} | |
} | |