Create a generic doubly linked list class using an internal node class: LinkedLi
ID: 667441 • Letter: C
Question
Create a generic doubly linked list class using an internal node class:
LinkedListUM<T> and NodeUM<T> Include these Methods for LinkedListUM<T>:
- void insertHead (T)
- void insertTail (T)
- T removeElementAt (int)
- T removeTail ()
- T removeHead ()
- T peekElementAt (int)
- T peekHead ()
- T peekTail ()
- String toString ()
Test your program using your previous class.
In your documentation answer, at what point does your program performance begin to degrade?
StudentA.java
import java.util.Scanner;
import java.util.ArrayList;
class StudentA implements Comparable <StudentA> {
static java.util.Random rn = new java.util.Random (); static ArrayList <String> firstNames = new ArrayList <>(); static ArrayList <String> lastNames = new ArrayList <>(); static SORTBY sortBy = SORTBY.LAST;static int nextUID = 1;
String first, last;
double gpa = 0;
int credits = 0;
int uid = 0;
static {
try {java.util.Scanner scFirst = new java.util.Scanner (new
java.io.File("firstNames.txt"));java.util.Scanner scLast = new java.util.Scanner (new
java.io.File("lastNames.txt"));while (scFirst.hasNext()) firstNames.add (scFirst.next()); while ( scLast.hasNext()) lastNames.add ( scLast.next());
}catch (java.io.FileNotFoundException e) {
System.out.println (e);
} // end try catch
} // end static intializerenum SORTBY {LAST, FIRST, CREDITS, GPA}public StudentA (String st) {this (new Scanner (st)) }
public StudentA (Scanner sc) {
uid = nextUID++;
first = sc.next();
last = sc.next();
credits = sc.nextInt();
gpa = sc.nextDouble();
} // end Scanner constructor
public StudentA () {uid = nextUID++;} // no parameter constructor
public int compareTo (StudentA x) {
switch (sortBy) {case LAST : return last.compareTo (x.last);
case FIRST : return first.compareTo (x.first); case CREDITS: return credits - x.credits;case GPA : return (gpa > x.gpa)? 1 : -1;
} // end switch
return 0;
} // end compareTo for Comparable interface
public String toString () {
return String.format ("%5d %15s, %15s: %5d %10.2f", uid, last, first, credits, gpa);
} // end method toString
public static StudentA [] makeRandom (int m) {
StudentA [] sa = new StudentA [m];
for (int i = 0; i < sa.length; i++) {
sa[i]
sa[i].first
sa[i].last
sa[i].credits = rn.nextInt (120);
sa[i].gpa = rn.nextDouble () * 4.0;
= new StudentA ();= firstNames.get (rn.nextInt (firstNames.size())); = lastNames.get (rn.nextInt ( lastNames.size()));
} // end for each student to instantiate
return sa;
} // end method makeRanom
public static void main (String args []) {
System.out.println (new StudentA
StudentA [] x = makeRandom (10);
for (StudentA m: x)
("james robinson 35 3.98"));
Last -----");
First -----");
Credits -----");
System.out.println (m);
java.util.Arrays.sort (x);
System.out.println ("----
for (StudentA m: x)
System.out.println (m);
System.out.println ("----
StudentA.sortBy = SORTBY.FIRST;
java.util.Arrays.sort (x);
for (StudentA m: x)
System.out.println (m);
System.out.println ("---- SORTED
StudentA.sortBy = SORTBY.CREDITS;
java.util.Arrays.sort (x);
for (StudentA m: x)
SORTED
SORTED
System.out.println (m);System.out.println ("---- SORTED GPA -----"); StudentA.sortBy = SORTBY.GPA; java.util.Arrays.sort (x);for (StudentA m: x)
System.out.println (m);
} // end main
} // end class StudentA
Explanation / Answer
StudentA.java
import java.util.Scanner;
import java.util.ArrayList;
class StudentA implements Comparable <StudentA> {
static java.util.Random rn = new java.util.Random (); static ArrayList <String> firstNames = new ArrayList <>(); static ArrayList <String> lastNames = new ArrayList <>(); static SORTBY sortBy = SORTBY.LAST; static int nextUID = 1;
String first, last;
double gpa = 0;
int credits = 0;
int uid = 0;
static {
try { java.util.Scanner scFirst = new java.util.Scanner (new
java.io.File("firstNames.txt")); java.util.Scanner scLast = new java.util.Scanner (new
java.io.File("lastNames.txt")); while (scFirst.hasNext()) firstNames.add (scFirst.next()); while ( scLast.hasNext()) lastNames.add ( scLast.next());
} catch (java.io.FileNotFoundException e) {
System.out.println (e);
} // end try catch
} // end static intializer enum SORTBY {LAST, FIRST, CREDITS, GPA} public StudentA (String st) {this (new Scanner (st)) }
public StudentA (Scanner sc) {
uid = nextUID++;
first = sc.next();
last = sc.next();
credits = sc.nextInt();
gpa = sc.nextDouble();
} // end Scanner constructor
public StudentA () {uid = nextUID++;} // no parameter constructor
public int compareTo (StudentA x) {
switch (sortBy) { case LAST : return last.compareTo (x.last);
case FIRST : return first.compareTo (x.first); case CREDITS: return credits - x.credits; case GPA : return (gpa > x.gpa)? 1 : -1;
} // end switch
return 0;
} // end compareTo for Comparable interface
public String toString () {
return String.format ("%5d %15s, %15s: %5d %10.2f", uid, last, first, credits, gpa);
} // end method toString
public static StudentA [] makeRandom (int m) {
StudentA [] sa = new StudentA [m];
for (int i = 0; i < sa.length; i++) {
sa[i]
sa[i].first
sa[i].last
sa[i].credits = rn.nextInt (120);
sa[i].gpa = rn.nextDouble () * 4.0;
= new StudentA (); = firstNames.get (rn.nextInt (firstNames.size())); = lastNames.get (rn.nextInt ( lastNames.size()));
} // end for each student to instantiate
return sa;
} // end method makeRanom
public static void main (String args []) {
System.out.println (new StudentA
StudentA [] x = makeRandom (10);
for (StudentA m: x)
("james robinson 35 3.98"));
Last -----");
First -----");
Credits -----");
System.out.println (m);
java.util.Arrays.sort (x);
System.out.println ("----
for (StudentA m: x)
System.out.println (m);
System.out.println ("----
StudentA.sortBy = SORTBY.FIRST;
java.util.Arrays.sort (x);
for (StudentA m: x)
System.out.println (m);
System.out.println ("---- SORTED
StudentA.sortBy = SORTBY.CREDITS;
java.util.Arrays.sort (x);
for (StudentA m: x)
SORTED
SORTED
System.out.println (m); System.out.println ("---- SORTED GPA -----"); StudentA.sortBy = SORTBY.GPA; java.util.Arrays.sort (x); for (StudentA m: x)
System.out.println (m);
} // end main
} // end class StudentA
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.