A splice method combines two queues by adding all elements o
A splice method combines two queues by adding all elements of a second queue to the end of a first queue. Write a splice method from the implementation perspective. This method will go inside of the LinkedQueue class. public void splice(LinkedQueue secondQueue) The secondQueue should not be altered when the method completes. For full credit, you must take advantage of being able to directly access the linked node chain of secondQueue. Your solution should not be the same as Q5. In other words, for an efficient solution, do not destroy and rebuild secondQueue. Note that it is okay to invoke the O(1) methods in the current LinkedQueue class!
public class LinkedQueue<T> implements QueueInterface<T>, java.io.Serializable
 {
 private Node firstNode; // references node at front of queue
 private Node lastNode; // references node at back of queue
   
    public LinkedQueue()
    {
        firstNode = null;
        lastNode = null;
    } // end default constructor
   
    public void enqueue(T newEntry)
    {
        Node newNode = new Node(newEntry, null);
       
        if (isEmpty())
            firstNode = newNode;
        else
            lastNode.setNextNode(newNode);
       lastNode = newNode;
    } // end enqueue
   public T getFront()
    {
        T front = null;
       
        if (!isEmpty())
            front = firstNode.getData();
       
        return front;
    } // end getFront
   public T dequeue()
    {
        T front = null;
       
        if (!isEmpty())
        {
            front = firstNode.getData();
            firstNode = firstNode.getNextNode();
           
            if (firstNode == null)
                lastNode = null;
        } // end if
       
        return front;
    } // end dequeue
       
    public boolean isEmpty()
    {
        return (firstNode == null) && (lastNode == null);
    } // end isEmpty
   
    public void clear()
    {
        firstNode = null;  
        lastNode = null;
    } // end clear
   
    public void display() {
        Node current = firstNode;
        while(current!=null) {
            System.out.print(current.data + \" \");
            current = current.next;
        }
        System.out.println();
    }
   
    public void splice(LinkedQueue<T> anotherQueue) {
        // YOUR CODE HERE!
}
    private class Node implements java.io.Serializable
    {
        private T data; // entry in queue
        private Node next; // link to next node
       private Node(T dataPortion)
        {
            data = dataPortion;
            next = null;  
        } // end constructor
       
        private Node(T dataPortion, Node linkPortion)
        {
            data = dataPortion;
            next = linkPortion;  
        } // end constructor
       private T getData()
        {
            return data;
        } // end getData
       private void setData(T newData)
        {
            data = newData;
        } // end setData
       private Node getNextNode()
        {
            return next;
        } // end getNextNode
       
        private void setNextNode(Node nextNode)
        {
            next = nextNode;
        } // end setNextNode
    } // end Node
} // end Linkedqueue
Solution
Please find the required program along with its output. Please see the comments against each line to understand the step.
---------------------------------------------------------------------
OUTPUT:
QUEUE 1:
 1 2 3 4 5
 QUEUE 2:
 6 7 8 9 10
 QUEUE 1 AFTER SPLICE:
 1 2 3 4 5 6 7 8 9 10



