1: /** 2: A class that implements a queue of objects by using 3: a chain of linked nodes that has both head and tail references. 4: 5: @author Frank M. Carrano 6: @author Timothy M. Henry 7: @version 5.0 8: */ 9: public final class LinkedQueue<T> implements QueueInterface<T> 10: { 11: private Node firstNode; // References node at front of queue 12: private Node lastNode; // References node at back of queue 13: 14: public LinkedQueue() 15: { 16: firstNode = null; 17: lastNode = null; 18: } // end default constructor 20: // < Implementations of the queue operations go here. > 21: // . . . 23: private class Node 24: { 25: private T data; // Entry in queue 26: private Node next; // Link to next node 27: 28: private Node(T dataPortion) 29: { 30: data = dataPortion; 31: next = null; 32: } // end constructor 33: 34: private Node(T dataPortion, Node linkPortion) 35: { 36: data = dataPortion; 37: next = linkPortion; 38: } // end constructor 39: 40: private T getData() 41: { 42: return data; 43: } // end getData 44: 45: private void setData(T newData) 46: { 47: data = newData; 48: } // end setData 49: 50: private Node getNextNode() 51: { 52: return next; 53: } // end getNextNode 54: 55: private void setNextNode(Node nextNode) 56: { 57: next = nextNode; 58: } // end setNextNode 59: } // end Node 60: } // end LinkedQueue