implement queue using linked list in java

Java program for implement queue using linked list. Here problem description and explanation.

/*
  Java Program for
  Implement queue using linked list
*/
// Create Q node
class QNode
{
    public int data;
    public QNode next;
    QNode(int value)
    {
        this.data = value;
        this.next = null;
    }
}
public class MyQueue
{
    public QNode head;
    public QNode tail;
    public int count;
    public MyQueue()
    {
        this.head = null;
        this.tail = null;
        this.count = 0;
    }
    public int size()
    {
        return this.count;
    }
    public boolean isEmpty()
    {
        return this.count == 0;
    }
    // Add new node of queue
    public void enqueue(int value)
    {
        // Create a new node
        QNode node = new QNode(value);
        if (this.head == null)
        {
            // Add first element into queue
            this.head = node;
        }
        else
        {
            // Add node at the end using tail 
            this.tail.next = node;
        }
        this.count++;
        this.tail = node;
    }
    // Delete a element into queue
    int dequeue()
    {
        if (this.head == null)
        {
            System.out.println("Empty Queue");
            return -1;
        }
        // Pointer variable which are storing 
        // the address of deleted node
        QNode temp = this.head;
        // Visit next node 
        this.head = head.next;
        this.count--;
        if (this.head == null)
        {
            // When deleting a last node of linked list
            this.tail = null;
        }
        return temp.data;
    }
    // Get front node
    public int peek()
    {
        if (this.head == null)
        {
            System.out.println("Empty Queue");
            return -1;
        }
        return this.head.data;
    }
    public static void main(String[] args)
    {
        MyQueue task = new MyQueue();
      	// Initially number of element
        System.out.println("isEmpty : " + task.isEmpty());
        // Add element into queue
        task.enqueue(10);
        task.enqueue(20);
        task.enqueue(30);
        task.enqueue(40);
        task.enqueue(50);
        // Test other function
        System.out.println("size : " + task.size());
        System.out.println("peek : " + task.peek());
        System.out.println("dequeue : " + task.dequeue());
        System.out.println("size : " + task.size());
        System.out.println("peek : " + task.peek());
        System.out.println("isEmpty : " + task.isEmpty());
    }
}
implementing queue using linked list

Output

isEmpty : true
size : 5
peek : 10
dequeue : 10
size : 4
peek : 20
isEmpty : false


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved