Monday, January 25, 2016

Queue Implementation using Linked List In Java

package Queue;

import LinkedList.ListNode;

public class LinkedQueue {

public int length;
public ListNode front, rear;

public LinkedQueue() {
length = 0;
front = rear = null;
}

public boolean isEmpty() {
return (length == 0);
}

public void enqueue(int data) {
ListNode node = new ListNode(data);
if (isEmpty()) {
front = node;
} else {
rear.setNext(node);
}
rear = node;
length++;
}

public int dequeue() throws Exception {
if (isEmpty()) {
throw new Exception("queue");
}
int result = front.getData();
front = front.getNext();
System.out.println(result);
length--;
return result;
}

public int first() throws Exception {
if (isEmpty()) {
throw new Exception();
}
return front.getData();
}

public int size() {
return length;
}

public String toString() {
String result = "[";
ListNode current = front;
while (current != null) {
result = result + current.getData() + ",";
current = current.getNext();
}
result+="]";
return result;

}

public static void main(String[] args) throws Exception {
LinkedQueue queue = new LinkedQueue();

queue.enqueue(5);
queue.enqueue(9);
queue.enqueue(7);
queue.enqueue(10);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println(queue);
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.dequeue();
queue.dequeue();

}

}

No comments:

Post a Comment