Datentypen Doppelte Verkette Liste - Verständnissproblem

hueck

Mitglied
Hi,

habe ein kleines Verständnissproblem. Habe hier eine Doppelte verkette Liste (selber implementiert) die 3 Objekete enthält.

Das erste zeigt natürlich auf null und zwei, das zwiete auf 1 und 3 und das dritte auf 2 und null. Dazu haben wir auch eine Remove Methode, die allerdings für mich keinen Sinn ergibt, sobald 3 Objekte in der lsite sind. Bei 2 macht es Sinn

Java:
if (i == 0) {  // ersten entfernen
			p = first;
			first = first.getNext();
			p.setNext(null);
			if (first != null) {
				first.setPrevious(null);

Falls ich jetzt 3 Objekte first,second und last in der Liste habe, passiert ja folgendes (meines wissens nach)
- p zeigt auf first.
- Das neue first ist das nachfolgende vom alten, also second.
- p.setNext(null) ist doch aber last oder? (Hier habert es, aber evtl. übersehe ich ja etwas oder verstehe etwas falsch...)

Bin für Hilfe dankbar
 

damtre

Aktives Mitglied
Du überschreibst doch wieder dein neues Element wenn du p.setNext(null) machst oder nicht? ISt schon lange her...

Dein Programm sollte natürlich auch bei n Einträgen mit dem löschen klar kommen...
Du musst deine Zeiger richtig umpolen...

Das heisst, dass wenn dein erster Eintrag gelöscht wird dein zweiter Eintrag sich als vorgänger nun den vorgänger des ersten elementes(das zu löschende) merkt.

Ach ja, deine Liste ist ja doppelt verkettet...
Der vorgänger vom zu löschenden Wert merkt sich als nachfolger das folgende vom löschenden Element.
 
Zuletzt bearbeitet:

hueck

Mitglied
Oh sorry ich hätte noch erwähnen sollen dass das die lösung ist vom Prof und die ist lauffähig fur n Elemente, dennoch kann ich es nicht nachvollziehen...
 

damtre

Aktives Mitglied
Zeig doch bitte mal die Listenimplementierung, werde mal schauen ob ich dann mehr helfen kann. Es ist nur schon spät und mein Gehirn ist halb im Bett! ;)
 
N

notHueckDamtre

Gast
Generell gilt beim Entfernen, dass die Zeiger des zu löschenden Elements unrelevant sind und nur die der restlichen Liste so abgeändert werden müssen, dass das alte Element nicht mehr referenziert wird UND dass die verbleibenden Listenelemente korrekt verkettet sind.

Das erfordert etwas Nachdenken, welche Zeiger sich dann ändern müssen (pauschal gesagt, nur die des Vorgängers und Nachfolgers), und eventuelle Fallunterscheidungen, wenn beim Löschen von ersten und letzten Elementen etwas anderes passieren muss als beim Löschen anderer Elemente.

Die Listenlänge ist natürlich egal. :/
 

Ariol

Top Contributor
Java:
//p = temporäres Element
//first = aktueller Zeiger auf das erste Element

if (i == 0) {  // ersten entfernen //Wenn wir beim index 0 sind
            p = first; // aktuelles erstes element zwischenspeichern
            first = first.getNext(); //Zeiger auf erstes element zeigt ab jetzt auf das 2te element der liste
            p.setNext(null); //das ehemalige erste element hat keinen nachfolger mehr (soll ja entfernt werden)
            if (first != null) { //gab es überhaupt mehr als 1 element?
                first.setPrevious(null); //das neue erste element darf natürlich nicht mehr das alte erste element als vorgänger gesetzt haben

Hoffe das war so verständlich ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
C das Doppelte des Wertes in der Console ausgeben Java Basics - Anfänger-Themen 10
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
H Frage zur ermittlung eines doppelte Paars aus Sotieralgorithmus Java Basics - Anfänger-Themen 4
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
L Doppelte Schleife Anpassen Java Basics - Anfänger-Themen 5
W Map doppelte Values löschen Java Basics - Anfänger-Themen 3
S CSV auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 8
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
T Klassen Doppelte Elemente aus Container entfernen Java Basics - Anfänger-Themen 6
M Erste Schritte Doppelte Ausgabe? (JList) Java Basics - Anfänger-Themen 1
kilopack15 Array auf doppelte Elemente überprüfen Java Basics - Anfänger-Themen 16
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
K Input/Output Doppelte Ausgabe Java Basics - Anfänger-Themen 5
S Erste Schritte Doppelte Ausführung? Java Basics - Anfänger-Themen 4
E Threads Doppelte Threads beenden Java Basics - Anfänger-Themen 4
J Variablen Doppelte Werte in Int Array Java Basics - Anfänger-Themen 10
D Java doppelte Zahlen auch über 10 in einem String entfernen Java Basics - Anfänger-Themen 2
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5
O Doppelte For-Scheife Java Basics - Anfänger-Themen 6
E Array doppelte Einträge Java Basics - Anfänger-Themen 2
S Variablen Array in ArrayList auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 4
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
P Doppelte Datensätze aus CSV-Datei löschen Java Basics - Anfänger-Themen 17
B Doppelte Werte aus Array entfernen ohne Import - Algorithmus Java Basics - Anfänger-Themen 5
P Doppelte Einträge in eine List Java Basics - Anfänger-Themen 5
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
R Doppelte löschen Java Basics - Anfänger-Themen 6
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
U Doppelte Interfcae Implementierung Java Basics - Anfänger-Themen 10
M doppelte Einträge Emailempfänger... Java Basics - Anfänger-Themen 35
G txt-File als DB>doppelte Einträge verhindern/Suche/... Java Basics - Anfänger-Themen 10
DerGroßeNargus Doppelte Liste initialisieren Java Basics - Anfänger-Themen 2
T Doppelte Liste Java Basics - Anfänger-Themen 8
R Schleife Doppelte Daten löschen Java Basics - Anfänger-Themen 3
V Doppelte Zahl suchen Java Basics - Anfänger-Themen 14
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
G List suchen und doppelte rausfiltern Java Basics - Anfänger-Themen 3
T Doppelte Anführungszeichen ersetzen?? Java Basics - Anfänger-Themen 4
Luk10 Doppelte for-schleife Java Basics - Anfänger-Themen 7
P Doppelte Einträge in mehreren Textfiles finden und ausgeben Java Basics - Anfänger-Themen 8
T Array: Doppelte Charakteren löschen - Ein Lösungsversuch Java Basics - Anfänger-Themen 37
P doppelte Werte im Array ausgeben. Java Basics - Anfänger-Themen 4
J doppelte Einträge in einem Array Java Basics - Anfänger-Themen 7
M Aufgabe: Array auf doppelte Zahl prüfen Java Basics - Anfänger-Themen 8
-horn- Doppelte Einträge entfernen, aus Array, List oder sonstwas Java Basics - Anfänger-Themen 9
G _NUR_ doppelte Einträge in einem Array behalten Java Basics - Anfänger-Themen 3
J Doppelte Integer aus einem Array entfernen - seltsames Prob. Java Basics - Anfänger-Themen 5
G doppelte Einträge im String Array löschen Java Basics - Anfänger-Themen 21
C Doppelte Punktnotation Java Basics - Anfänger-Themen 2
0 ArrayList - doppelte Einträge entfernen? Java Basics - Anfänger-Themen 9
S Methode, um doppelte Einträge in Array zu finden Java Basics - Anfänger-Themen 5
F doppelte Elemente in HashSet Java Basics - Anfänger-Themen 5
G java.util.LinkedList: Doppelte Elemente vermeiden Java Basics - Anfänger-Themen 5
G Wie doppelte Einträge in ComboBox vermeiden ? Java Basics - Anfänger-Themen 9
M Doppelte Einträge in einer datei löschen(nach timestamp)! Java Basics - Anfänger-Themen 4
D Doppelte Einträge einer Liste löschen Java Basics - Anfänger-Themen 6
B 2 ELists vergleichen und doppelte Einträge löschen Java Basics - Anfänger-Themen 11
S "doppelte" if-Anweisung Java Basics - Anfänger-Themen 10
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
F Doppelte Datensätze zusammenziehen Java Basics - Anfänger-Themen 2
V Doppelte Zahlen bei Lotto verhindern Java Basics - Anfänger-Themen 11
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
S Einfach verkette Liste Java Basics - Anfänger-Themen 27
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
C verkette liste sortieren? Java Basics - Anfänger-Themen 7
W Rekursion und verkette Liste Java Basics - Anfänger-Themen 5
I einfach verkette Liste Java Basics - Anfänger-Themen 9
K Verkette Listen Java Basics - Anfänger-Themen 13
K Verkette Listen ? Java Basics - Anfänger-Themen 6
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H doppelt verkette liste Java Basics - Anfänger-Themen 2
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben