Verkettete Liste

Jonathan_F

Grünschnabel
Hallo Leute!

Ich habe eine verkettete List mit einer bestimmen Anzahl an Studenten. Diese haben einen Namen und eine Note. Ich möchte eine Methode getBestGrade() schreiben, die alle Studentennoten vergleicht und die beste (niedrigste) zurückgibt.

Dazu mein Quellcode:

Code:
public double getBestGrade() {
		//Liste durchlaufen, dazu Start setzen
		Student aktuell = head;
		//Notenvariable initialisieren
		double grade = 0.0;
		//Darauffolgenden Studenten initialisieren
		Student vergleich = aktuell.getNext();
		
		//Alle Noten vergleichen, dazu Liste durchlaufen
		while(aktuell.getNext() != null){
			//Note des aktuellen Studenten auslesen
			grade = aktuell.getGrade();
			
			if(grade > vergleich.getGrade()){
				grade = vergleich.getGrade();
			}
			//nächsten Studenten wählen
			aktuell = aktuell.getNext();
		}
		return grade;
	}

Das Ganze funktioniert bei mir allerdings nicht und ich komm einfach nicht auf die richtige Lösung. Vielleicht kann mir einer von euch helfen?

Grüße

Jonathan
 
Hallo,

dein Vorgehen ist nicht ganz korrekt.
Du solltest die Variable grade vor der Schleife auf die Note des aktuellen Studenten setzen. Also grob gesagt, wird angenommen, dass die erste Note die beste Note ist.

In der Schleife vergleichst du dann die Note in der Variablen grade mit der Note des nächsten Studenten. Hat dieser eine bessere Note setzt du grade auf die neue Note.

Also es ist eigentlich das typische Verfahren um den niedrigsten Wert einer Liste/Arrays zu bekommen. Genau so macht man es auch, wenn man den größten Wert haben möchte.

Gruß

Sascha
 
Zurück