Verkettete Liste

Mitko

Neues Mitglied
Hallo,
mir liegt folgende Aufgabe vor. Ich habe lange Zeit versucht diese Aufgabe zu machen und habe einen Code programmiert bei dem Ich gemerkt habe, dass die Konsole das ausgegeben hat was ich auch brauche. Irgendwie habe ich aber das Gefühl, dass ich etwas extrem dummes zusammengebaut habe und das gar nicht die Lösung sein kann. Es scheint einfach falsch zu sein. Könnte mir jemand sagen ob meine Code richtig ist?

Erweitern Sie die zweite Version der einfach verketteten Liste so, dass das Listenende beim Anhängen nicht immer wieder neu ermittelt werden muss, sondern neue Elemente direkt am Ende der Liste angehängt werden können. Hängen Sie zum Test mindestens 20 Elemente an.
Dazu ein paar Hilfestellungen:
• Sie müssen neben dem Anfang der Liste jetzt auch das Ende der Liste in einer Variablen speichern können.
• Erstellen Sie eine Methode, die Ihnen das aktuelle Ende der Liste zurückliefert. Alternativ können Sie sich das Listenende auch von der Methode zum Anhängen liefern lassen.
• Setzen Sie den Wert der Variablen für das Listenende nach dem Anhängen neuer Elemente jeweils auf das aktuelle Ende der Liste und rufen Sie dann die Methode zum Anhängen neuer Listenelemente mit diesem Wert neu auf.

class Listenelement{
String daten; // Eigenschaft Daten
Listenelement nachfolger,Ende; // Zwei Listenelemente

void setDaten(String datenNeu) { // Übergabe von Daten

daten = datenNeu;

}

void anhangen(String datenNeu) {

if(nachfolger == null) { // Gibt es ein weiteres Element?
Ende = nachfolger; //Wenn ja dann Ende = nächstes Element
nachfolger = new Listenelement(); // Nachfolger erzeugt neues Objekt
nachfolger.setDaten(datenNeu); // Und gibt diesem Objekt daten

}
else // Wenn es kein weiteres Element gibt
nachfolger.Listenende(); // nachfolger ist gleich Ende
System.out.println(datenNeu); // Ende erzeugt 19 Elemente
}
Listenelement Listenende() { // Methode liefert Ende zurück
return Ende;
}

void ausgabe() { // Ausgabe von daten

System.out.println(daten); // Daten = Anfang "Element 1 "

}
}
public class Liste {

public static void main(String[] args) {

Listenelement Anfang = new Listenelement(); // Erzeugung von Anfang

Anfang.setDaten("Element 1"); // Anfang 1 zuweisen
Anfang.ausgabe(); // Anfang in der Konsole ausgeben
for(int e = 2;e < 21; e++) // Schleife für die Zahlen von 2 bis 20
Anfang.anhangen("Element "+e); // Anfang werden 19 Zahlen zugefügt


}
}
 

KonradN

Super-Moderator
Mitarbeiter
Dazu kann ich erst einmal nur generelle Dinge sagen:

a) Code bitte immer in Code-Tags posten. Dazu einfach den Knopf </> links oberhalb des Eingabebereiches nutzen.

b) Beschreibe doch erst einmal, was Du genau machen willst. Derzeit ist die Liste, die Du da ansatzweise implementiert hast, schlicht unverständlich! Wie ist der Unterschied zwischen einer leeren Liste und einer Liste mit nur einem Element? Denn ganz offensichtlich generierst Du ein erstes Listenelement, das dann eine leere Liste sein könnte. Aber dann setzt Du da einfach "Element 1" und machst aus der Liste eine Liste mit einem Element? Das ist so unverständlich, denn es sollte ja einen Unterschied geben zwischen der leeren Liste und der Liste mit nur einem Element mit Wert null. (null ist ein gültiger Wert für eine String Variable, also könnte man den Wert auch in einer Liste mit Strings speichern!)

c) Coding Standards - Variablen sollten klein geschrieben werden, also statt Ende bitte ende.

d) Der Code ist so schlicht nicht in Ordnung:
Java:
if(nachfolger == null) {
    Ende = nachfolger; // Ende ist damit dann ja null!
    nachfolger = new Listenelement(); // hier wird nachfolger etwas zugewiesen - das ist dann aber nur in nachfolger!
    nachfolger.setDaten(datenNeu);
}


else // Wenn es kein weiteres Element gibt Hier fehlt offensichtlich die geschweifte Klammer auf - es kommen ja zwei Befehle....

Listenelement Listenende() { // Methode liefert Ende zurück Hier kommt dann die Klammer - aber natürlich an falscher Stelle ... Und was soll der Aufruf von Listenende() machen in Deinen Augen? Da wird ja einfach die Variable Ende zurück gegeben. Das verändert nichts. Und mit der Rückgabe machst Du nichts. Daher ein Befehl, der unter dem Strich einfach nichts macht!

Fazit
Ich vermute, dass Du hier also schlicht noch kein Verständnis hast, was denn da überhaupt passieren soll. Daher kann ich Dir nur ganz stark ans Herz legen: Nimm Dir Stift und Papier und male es Dir auf! Gehe im Detail durch, was Du denn an Verhalten erwartest. Das kann sein:

Leere Liste: Ein Listenelement mit nachfolger = null, ende = null.

Liste mit einem Element: Zwei Listenelement, erstes dann mit nachfolger und ende = dem zweiten Element und das Zweite Element hat die Daten aber dann mit nachfolger und ende = null.

Wenn dann noch ein Element dazu kommt, dann wird daraus:
Der Listenkopf hat nachfolger = erstes Element und ende = letztes Element
erstes Element hat Nutzdaten + nachfolger = zweites Element, ende = null
zweites Element hat Nutzdaten + nachfolger / ende = null

Das zeigt dann: ende wird nur im Listenkopf gesetzt. Innerhalb der Liste ist ende immer null! (Wäre dann ein Grund, das in zwei Klassen aufzuteilen: List hat dann keine Nutzdaten und Anfang und Ende. Die Listenelemente haben Nutzdaten und Nachfolger. Das aber nur als allgemeiner Hinweis.)

Und nun kannst Du Dir die einzelnen Möglichkeiten überlegen: Was für Fälle gibt es? Und was musst Du in jedem Fall im Detail machen? Das solltest Du anhand deiner Zeichnungen nachvollziehen können!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
A Verkettete Liste Java Basics - Anfänger-Themen 2
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
L verkettete Liste Java Basics - Anfänger-Themen 15
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
H Verkettete Liste Java Basics - Anfänger-Themen 7
N Verkettete liste rückwärts ausgeben Java Basics - Anfänger-Themen 18
K Verkettete Liste und seine Methoden Java Basics - Anfänger-Themen 1
N Verkettete Liste implementieren Java Basics - Anfänger-Themen 5
O Einfach verkettete Liste - Revert Methode Java Basics - Anfänger-Themen 1
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
R Erste Schritte Verkettete Liste will einfach nicht in meinen Schädel Java Basics - Anfänger-Themen 11
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
L Doppelt verkettete Liste Java Basics - Anfänger-Themen 6
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
V Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 3
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
K Einfach Verkettete Liste - addFirst() Java Basics - Anfänger-Themen 7
G 2 Aufgabe rund um eine verkettete Liste Java Basics - Anfänger-Themen 2
O Verkettete Liste Java Basics - Anfänger-Themen 10
E Methoden auf von Methoden erstellte Objekte zugreifen (verkettete Liste) Java Basics - Anfänger-Themen 10
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
S Doppelt verkettete Liste Java Basics - Anfänger-Themen 3
G Doppelt Verkettete Liste Java Basics - Anfänger-Themen 2
A Doppelt Verkettete Liste Java Basics - Anfänger-Themen 16
E doppelt verkettete liste Java Basics - Anfänger-Themen 10
V Verkettete Liste. Java Basics - Anfänger-Themen 7
X Einfach Verkettete Liste Java Basics - Anfänger-Themen 16
K Verkettete Liste - Methode entwerfen Java Basics - Anfänger-Themen 14
S Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 12
B Insertionsort verkettete Liste Java Basics - Anfänger-Themen 4
B Stack in eine verkettete Liste pushen Java Basics - Anfänger-Themen 4
R verkettete liste ansEndeSchieben Java Basics - Anfänger-Themen 13
T Verkettete Liste Java Basics - Anfänger-Themen 14
A Klassen Innere Klassen, verkettete Liste Java Basics - Anfänger-Themen 9
B Zweifach-verkettete Liste umkehren Java Basics - Anfänger-Themen 6
X verkettete Liste Java Basics - Anfänger-Themen 13
E Datentypen Doppelt verkettete Liste Java Basics - Anfänger-Themen 10
P Einfügen in doppelt verkettete Liste Java Basics - Anfänger-Themen 7
kae verkettete Liste Java Basics - Anfänger-Themen 5
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
B OOP Verkettete Liste Java Basics - Anfänger-Themen 7
R verkettete liste Java Basics - Anfänger-Themen 5
M Verkettete Liste Java Basics - Anfänger-Themen 4
M verkettete liste Java Basics - Anfänger-Themen 7
N doppelt verkettete liste einfügen Java Basics - Anfänger-Themen 7
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
N einfach verkettete liste fehler Java Basics - Anfänger-Themen 5
N einfach verkettete liste Java Basics - Anfänger-Themen 3
G verkettete Liste - invertieren Java Basics - Anfänger-Themen 2
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
B verkettete Liste Java Basics - Anfänger-Themen 8
S zyklisch verkettete Liste erstellen Java Basics - Anfänger-Themen 3
S einfach verkettete Liste Java Basics - Anfänger-Themen 19
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
W Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 2
T Einfach verkettete Liste: Wie Elemente löschen? Java Basics - Anfänger-Themen 4
J verkettete Liste Java Basics - Anfänger-Themen 2
D Einfach verkettete Liste Java Basics - Anfänger-Themen 20
DasDogma Verkettete Liste - Element löschen Java Basics - Anfänger-Themen 2
H Verkettete Liste Java Basics - Anfänger-Themen 5
M verkettete Liste auslesen Java Basics - Anfänger-Themen 7
K eigene verkettete Liste Java Basics - Anfänger-Themen 4
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
A Eine verkettete Liste Java Basics - Anfänger-Themen 43
G verkettete lineare Liste Java Basics - Anfänger-Themen 2
L verkettete Liste - Ausgabeproblem Java Basics - Anfänger-Themen 2
G Wie kann ich eine verkettete Liste in ein JTable einfügen? Java Basics - Anfänger-Themen 7
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
R ArrayList Objekt -> verkettete Liste Java Basics - Anfänger-Themen 4
R verkettete Liste Java Basics - Anfänger-Themen 13
R verkettete Liste in und aus Datei Java Basics - Anfänger-Themen 5
M Doppelt verkettete Liste Zeiger Vorgänger beim Einfügen Java Basics - Anfänger-Themen 2
J doppelt verkettete Liste Java Basics - Anfänger-Themen 5
L doppelt verkettete Liste Java Basics - Anfänger-Themen 6
C einfach verkettete Liste -> Elemente vertauschen Java Basics - Anfänger-Themen 2
0 Binärbaum als verkettete Liste Java Basics - Anfänger-Themen 3
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
G Dopplelt verkettete liste Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
R einfach verkettete Liste, intersect Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben