X Tutup
public class Circular_Queue { static class Node { int value; Node link; } static class CircularQueue {Node first, last;} static void Insert(CircularQueue cq, int value) { Node n = new Node(); n.value = value; if (cq.first == null) { cq.first = n; } else { cq.last .link = n; } cq.last = n; cq.last.link = cq.first; } static int Delete(CircularQueue cq) { if (cq.first == null) { System.out.printf ("Circular Queue is empty"); return Integer.MIN_VALUE; } int value; if (cq.first == cq.last) { value = cq.first.value; cq.first = null; cq.last = null; } else { Node n = cq.first; value = n.value; cq.first = cq.first.link; cq.last.link = cq.first; } return value ; } static void displayCircularQueue( CircularQueue cq) { Node n = cq.first; System.out.printf("\nElements in Circular Queue are: "); while (n.link != cq.first) { System.out.printf("%d ", n.value); n = n.link; } System.out.printf("%d", n.value); } public static void main(String[] args) { CircularQueue cq = new CircularQueue(); cq.first = cq.last = null; System.out.println("Inserting value = 69"); Insert(cq, 69); System.out.println("Inserting value = 12"); Insert(cq, 12); System.out.println("Inserting value = 42"); Insert(cq, 42); displayCircularQueue(cq); System.out.printf("\nDeleting value = %d", Delete(cq)); System.out.printf("\nDeleting value = %d", Delete(cq)); displayCircularQueue(cq); System.out.println(); System.out.println(); System.out.println("Inserting value = 21"); Insert(cq, 21); System.out.println("Inserting value = 3"); Insert(cq, 3); displayCircularQueue(cq); } }
X Tutup