Back Source

Simple Implementation of Queue as a Linked List.

class Node {
    protected int data;
    protected Node next = null;

    public Node() {
    }

    public Node(int data, Node next) {
        this.data = data;
        this.next = next;
    }

    void setData(int data) {
        this.data = data;
    }

    void setLink(Node link) {
        this.next = link;
    }

    Node getLink() {
        return next;
    }

    int getData() {
        return data;
    }
}

class Queue {
    protected Node f = null, r = null;

    void enQueue(int val) {
        Node nptr = new Node(val, null);
        if (f == null) {
            f = r = nptr;
        } else {
            r.setLink(nptr);
            r = nptr;
        }
    }

    int deQueue() {
        if (f == null) {
            System.out.println("Queue Empty");
            return -1;
        } else {
            int val = f.getData();
            f = f.getLink();
            return val;
        }
    }

    boolean isEmpty() {
        return f == null;
    }
}

public class SimpleQueueLink {
    public static void main(String[] args) {
        Queue q=new Queue();
        q.enQueue(34);
        q.enQueue(12);
        q.enQueue(134);
        q.deQueue();
        q.enQueue(10);
        while (!q.isEmpty()) {
            System.out.println(q.deQueue());
        }
        System.out.println(q.deQueue());
        q.enQueue(90);
        q.enQueue(29);
        while (!q.isEmpty()) {
            System.out.println(q.deQueue());
        }
    }
}