X Tutup
package graph.bfs; import java.util.NoSuchElementException; /** * @author Sesh Venugopal */ public class Queue { public static class Node { private T data; private Node next; public Node(T data, Node next) { this.data = data; this.next = next; } } private Node rear; private int size; public Queue() { rear = null; size = 0; } public void enqueue(T item) { Node newItem = new Node(item, null); if (rear == null) { newItem.next = newItem; } else { newItem.next = rear.next; rear.next = newItem; } size++; rear = newItem; } public T dequeue() throws NoSuchElementException { if (rear == null) { throw new NoSuchElementException("queue is empty"); } T data = rear.next.data; if (rear == rear.next) { rear = null; } else { rear.next = rear.next.next; } size--; return data; } public int size() { return size; } public boolean isEmpty() { return size == 0; } public void clear() { size = 0; rear = null; } public T peek() throws NoSuchElementException { if (rear == null) { throw new NoSuchElementException("queue is empty"); } return rear.next.data; } }
X Tutup