Problem 1 List Client Suppose that you have a singly linked
Problem 1 (List Client)
Suppose that you have a singly linked list that is created by the following statement ListInterface quizScores = new LList(); A professor wants to add to this list quiz scores received by a student throughout a course and find the average of these quiz scores, ignoring the lowest score. Write a Java program at the client level that will:
a. Find and remove the lowest score in the list
b. Compute the average of the scores remaining in the list
c. Print the result.
Solution
package com.spring.youtube;
import java.util.ArrayList;
 import java.util.List;
 import java.util.ListIterator;
public class screQuiz {
    static List quizScores=new ArrayList();
   
    //add scores to a list.
   
    public static void main(String hj[]){
       
        quizScores.add(1);
        quizScores.add(2);
        quizScores.add(81);
        quizScores.add(23);
        quizScores.add(234);
        quizScores.add(24);
       
        System.out.println(\"Printing elemets of list\");
        for(int i=0;i<quizScores.size();i++){
            System.out.println(i+\"\ \");
        }
       
        /*
        * this method removes lowest score from list.
        */
        removelowestscore();
       
        /*
        * this method prints Print list.
        *
        */
       
    }
private static void removelowestscore() {
   int minIndex;
    if (quizScores.isEmpty()) {
    minIndex = -1;
    } else {
    final ListIterator<Integer> itr = quizScores.listIterator();
    Integer min = itr.next(); // first element as the current minimum
    minIndex = itr.previousIndex();
    while (itr.hasNext()) {
    final Integer curr = itr.next();
    if (curr.compareTo(min) < 0) {
    min = curr;
    minIndex = itr.previousIndex();
    }
    }
    }
   
    quizScores.remove(minIndex);
    }
   
    private void printelements(){
        for(int i=0;i<quizScores.size();i++){
            System.out.println(i+\"\ \");
        }
       
    }
   
 }


