Saturday, October 5, 2013

Queue Reversal

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();
}
}
view raw gistfile1.java hosted with ❤ by GitHub