Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote