Wie sieht die Methode aus um aus einer Verketteten Liste einen Index zu erhalten(Objekt gegeben)?

...komplette Frage anzeigen

2 Antworten

Das lässt sich mit Rekursion recht einfach lösen:

// in Maschinenliste
public int indexOf(Maschine maschine) {
if( this.first != null){ return first.counting( 0, maschine);}
else{ return -1;}
}
// in Node
private int counting( index i, Maschine maschine){
if(this.maschine == null && this.next == null){ return -1;}
else if{ return maschine == this.maschine){return i}
else if( this.next == null){ return -1;}
else{ ++i; return this.next.counting( i, maschine)}
}

In Worten:

Wenn der erste Knoten existiert, rufe counting, um loszulaufen,sonst gebe -1 zurück.

Wenn du in counting bist, überprüfe, ob sowohl die Maschine dieses Knoten sowie der Nachfolger nicht exisiteren, falls wahr, gebe -1 zurück, sonst überprüfe, ob die Maschinen gleich sind.

Falls die Maschinen nicht gleich sind, überprüfe, ob der nächste Knoten existiert und laufe zu dem weiter, den index i erhöhend.

Das kann man sicherlich noch schöner machen, hab es auch nicht laufen lassen, sollte dir aber vielleicht eine Idee geben, wie man das lösen kann.

Antwort bewerten Vielen Dank für Deine Bewertung

Moin.

Zähl "indexof" bei jedem Schleifendurchlauf hoch und gib den Wert von "indexof" zurück, wenn die gesuchte Maschine gefunden wurde.

Oder was meinste mit "Index"?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Ranaros
28.06.2017, 20:00

Ne ich will später eine Maschine übergeben. Die Liste wird dann durchsucht und wenn die Maschine gefunden wurde, soll der Index dieser Stelle zurückgegeben werden.

0

Was möchtest Du wissen?