public class SinglyLinkedNodes { private String element; private SinglyLinkedNodes next; public SinglyLinkedNodes(String s, SinglyLinkedNodes n){ element=s; next=n; } public String toString(){ return element; } public void setNext(SinglyLinkedNodes n){ next = n; } public SinglyLinkedNodes getNext(){ return next; } public String getElement(){ return element; } public void setElement(String s){ element=s; } } // close node class public class SinglyLinkedList { protected SinglyLinkedNodes head; protected long size; public SinglyLinkedList(){ head = null; size=0; } public void insertFirst(String s){ SinglyLinkedNodes newNode = new SinglyLinkedNodes(s, null);//1 newNode.setNext(head);//2 head=newNode; size++; } public SinglyLinkedNodes getNext(){ return head; } public String toString( ) { String s = ""; for( SinglyLinkedNodes n = head; n != null; n=n.getNext( ) ){ s += n.getElement( ); if( n.getNext( ) != null ) s += ", "; } return s; } }// close singlylinkedlist class public class DoublyLinkedNodes { private String element; private double element2; private DoublyLinkedNodes prev, next; public DoublyLinkedNodes(DoublyLinkedNodes p, String s, double t, DoublyLinkedNodes n){ element2 = t; element = s; next = n; prev = p; } public String toString1(){ return element; } public String toString2(){ String score; score = element2+""; return score; } public void setNext(DoublyLinkedNodes n){ next = n; } public void setPrev(DoublyLinkedNodes p){ prev = p; } public DoublyLinkedNodes getNext(){ return next; } public DoublyLinkedNodes getPrev(){ return prev; } public String getElement(){ return element; } public double getElement2(){ return element2; } public void setElement(String s){ element=s; } public void setElement2(double t){ element2=t; } }// close doublylinkednodes public class DoublyLinkedList { protected DoublyLinkedNodes head, tail; protected DoublyLinkedNodes prev, next; protected long size; public DoublyLinkedList(){ prev = null; next = null; tail = head = null; // head node is equal to tail node. both null. size=0; } public void insertFirst(String s, double t){ DoublyLinkedNodes newNode = new DoublyLinkedNodes(null, s, t, null); newNode.setNext(head);//2 head=newNode; size++; return; } public String toString( ) { String s = ""; for( DoublyLinkedNodes n = head; n != null; n=n.getNext( ) ){ s += n.getElement( ); if( n.getNext( ) != null ) s += ", "; } return s; } public String toString2( ){ String scores = ""; double t = 0; for( DoublyLinkedNodes m = head; m != null; m=m.getNext( ) ){ t = m.getElement2(); scores += t + " "; if( m.getNext() != null && m.getPrev() != null ){ scores += scores; } } return scores; } } // close doublylinked list class public class s0rter { public static void main(String args[]){ System.out.println("This program will sort a series of names and scores"); System.out.println("Using Singly and doubly linked lists!" + '\n'); Scanner scanner = new Scanner(System.in); SinglyLinkedList lis7 = new SinglyLinkedList(); DoublyLinkedList DLLis7 = new DoublyLinkedList(); int done=1; String sName; double dScore; while( done < 5 ){ System.out.println("Enter a name and score."); sName = scanner.next(); dScore = scanner.nextDouble(); lis7.insertFirst(sName); DLLis7.insertFirst(sName, dScore); System.out.println("lis7.head = " + lis7.head); System.out.println("DLLis7.head = " + DLLis7.head); done++; System.out.println (" You entered \n name: " + lis7.toString() + " \n Score: "); System.out.println (" You entered \n name: " + DLLis7.toString() + " \n Score: " + DLLis7.toString2()+'\n'); } } } // main class