Top Three Test Scores Implement a class that maintains a lis
Solution
import java.util.Scanner;
public class SortedLinkedList {
public static void add(java.util.LinkedList<Integer> list, int n) {
if (list.isEmpty())
list.add(n);
else if (list.size() == 1) {
if (list.getFirst() == n) {
System.out.println(\"Test score \" + n + \" already exists ignore entry\");
return;
} else if (list.getFirst() < n) {
list.addFirst(n);
return;
} else {
list.addLast(n);
return;
}
} else if (list.size() == 2) {
if (list.getFirst() == n || list.getLast() == n) {
System.out.println(\"Test score \" + n + \" already exists ignore entry\");
return;
}
else if (list.getFirst() < n)
{
list.addFirst(n);
return;
}
else if (list.getLast() > n)
{
list.addLast(n);
return;
}
else {
list.add(1, n);
return;
}
} else if (list.size() == 3) {
if (list.getFirst() == n || list.getLast() == n || list.get(1) == n) {
System.out.println(\"Test score \" + n + \" already exists ignore entry\");
return;
} else if (list.getFirst() < n) {
System.out.println(\"remove lowest score \" + list.getLast());
list.removeLast();
list.addFirst(n);
return;
} else if (list.getLast() > n) {
System.out.println(n + \" is less than minimum score in the list ignore entry\");
return;
}
else if (list.getFirst() > n && list.get(2) > n) {
System.out.println(\"remove lowest score \" + list.getLast());
list.removeLast();
list.addLast(n);
return;
} else if (list.getFirst() > n && list.get(2) < n) {
System.out.println(\"remove lowest score \" + list.getLast());
list.removeLast();
list.add(1, n);
return;
}
}
}
public static void print(java.util.LinkedList<Integer> list) {
if (list.isEmpty())
System.out.println(\"Empty list\");
else if (list.size() == 1)
System.out.println(\"Scores stored = \" + list.getFirst());
else if (list.size() == 2)
System.out.println(\"Scores stored = \" + list.getFirst() + \",\" + list.getLast());
else if (list.size() == 3)
System.out.println(\"Scores stored = \" + list.getFirst() + \",\" + list.get(1) + \",\" + list.getLast());
}
public static void main(String[] args) {
java.util.LinkedList<Integer> list = new java.util.LinkedList<Integer>();
Scanner in = new Scanner(System.in);
System.out.println(\"Please enter test score (0 to exit)\");
int num = in.nextInt();
while (num != 0) {
System.out.println(\"Add test score \" + num + \" to the list\");
add(list, num);
System.out.println(\"Number of elements in the list = \" + list.size());
print(list);
System.out.println(\"Please enter test score (0 to exit)\");
num = in.nextInt();
}
System.out.println(\"Exiting..\");
}
}


