Listenelement einfügen

Hallo,

ich habe bezüglich des Einfügens eines Elementes in einer Liste ein paar Verständlichkeitsfragen.

Die Fragen befinden sich als Kommentare im Quelltext.
Ich hoffe, dass mir jemand helfen kann.
Vielen Dank.


Java:
public class Übung_Liste {
   class Liste {
     Listenelement Anfang;
     class Listenelement {
       int nutzdaten;
       Listenelement next;
       Listenelement(int daten) {
         this.nutzdaten = daten;
         next = null;
       }
       void Liste() {
         Anfang = null;
       }
       void einfügen_vorne(int wert) {
         Listenelement zweites = Anfang;
         Anfang = new Listenelement(wert);
         Anfang.next = zweites;
       }
       void einfügen_dahinter(int wert) {
         Listenelementübernächster = next;
         next = new Listenelement(wert);
       }
       void einfügen_hinten(int wert) {
         Listenelement letztes = Anfang;
         if (Anfang == null) {
           Anfang = new Listenelement(wert);
         } else {
           while (letztes != null) {
             letztes = letztes.next;
           }
         }
       }
     }
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Khal Drogo

Bekanntes Mitglied
  1. Listenelement next ist ein Listenelement in einem Listenelement, fungiert an dieser Stelle als Zeiger.
  2. Naja, zeichne dir mal auf, was bei einfügen_dahinter passiert, so wie es momentan da steht, dürfte es aber auch nicht funktionieren! Es fehlt ein äußerst relevanter Schritt.
  3. einfügen_hinten ist an dieser Stelle auch noch nicht komplett, da das tatsächliche Einfügen fehlt (bzw. nur funktioniert, wenn die Liste aktuell leer ist). Was in letztes drin steht, ist ganz klar, entweder entspricht es Anfang, oder (sofern die Liste nicht leer ist) entspricht es nach der Schleife im else-Teil dem letzten Element der Liste, zumindest wenn hier noch ein kleiner Fehler behoben wird. Aktuell sollte dir das Programm nämlich mit einer NullPointerException um die Ohren fliegen.
Mit freundlichen Grüßen
Xelsarion
 
Da sind schon einige Sachen dabei, die mir helfen, danke!

1. ist jetzt klar
2. Hier fehlt eine Überprüfung, ob die Liste leer ist und es muss ein Zeiger von diesem neuen Element auf das bestehende Nachfolgende gemacht werden.
Aber verstehe ich das richtig, dass übernächster ein neues Listenelement ist, auf welches vom aktuell letzten Element der Liste gezeigt wird? Mich verwirrt das deshalb, weil ich hier erwartet hätte, dass es genau andersherum da steht: next = Listenelement übernächster.
3. Hier würde ich in der While-Schleife noch letztes.next = new Listenelement (wert) einfügen.
Was in letztes drinsteht habe ich verstanden
 

Khal Drogo

Bekanntes Mitglied
  1. Gut :)
  2. Nein, übernächster ist nicht das neue Element. Du hast deinen Zeiger auf einem Element, dann erstellst du einen zweiten Zeiger (übernächster), den du auf das Element hinter dem Zeiger zeigen lässt. Danach erzeugst du ein neues Element, dass du hinter das Element des ersten Zeigers hängst. Der Schritt, der anschließend fehlt, ist, dass hinter das neu erzeugte Element noch die alte Restliste drangehangen wird. Die alte Restliste startet bei deinem Zeiger übernächster, der dafür da ist, sich diese zu merken. An dieser Stelle möchte ich noch erwähnen, dass du in deinem Code möglichst Umlaute etc. vermeiden solltest!
  3. Das ist schon mal eine essenzielle Ergänzung. Überleg dir jetzt jedoch noch, was in der Schleife passiert, wenn du aktuell auf dem letzten Element stehst!
Mit freundlichen Grüßen
Xelsarion
 
Ok, so langsam verstehe ich den Sinn dahinter. Das macht es bedeutend einfacher, wenn man sich das bildlich vorstellen kann.
Ich bleibe dran.

Vielen Dank für die Tipps und Gruß zurück!
 
Ich habe hier mal ein Schaubild erstellt. Ist das richtig?
Also benutze ich den zweiten Zeiger übernächster auf next damit die Restliste nicht verloren geht?
Zeigt next dann immer auf den Nachfolger von dem 1. Element und next.next auf das 2. usw.?
Weil ich dachte next wäre die Referenz des letzten Elementes in der Liste.
 

Anhänge

  • Listenelement.png
    Listenelement.png
    15,3 KB · Aufrufe: 26

Khal Drogo

Bekanntes Mitglied
Du betrachtest ja immer ein bestimmtes Element und next beschreibt eben von da aus gesehen immer das nächste. Wenn du also beispielhaft eine Liste a -> b -> c -> null hast, ist
  • a.next == b, a.next.next == c, a.next.next.next == null
  • b.next == c, b.next.next == null
  • c.next == null
Da du dir im Programm meistens nur den Kopf der Liste merkst, benutzt du dann eben temporäre Zeiger, mit denen du dann über deine Liste iterierst.

Mit freundlichen Grüßen
Xelsarion
 

Khal Drogo

Bekanntes Mitglied
Was genau soll dein Schaubild darstellen? Bis jetzt stellt es ja da, dass das neue Element eingefügt und mit an die Liste angehangen wurde, während du dir die Restliste merkst. Jetzt fehlt quasi der Schritt, an dem die Restliste wieder angehangen wird, falls du das aber so beabsichtigt hast, scheint alles okay zu sein.

Mit freundlichen Grüßen
Xelsarion
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Listenelement wieder zu eigenständiger Liste machen? Java Basics - Anfänger-Themen 5
F Listenelement vergleichen Java Basics - Anfänger-Themen 8
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
S Algorithmus Datensätze einfügen wenn... Java Basics - Anfänger-Themen 26
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
R Inventar und Items auf ein 2D ArrayFeld einfügen Java Basics - Anfänger-Themen 2
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
T Variablen “ in String einfügen Java Basics - Anfänger-Themen 1
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
S Doppelte Liste Einfügen Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Tausende Wörter in Arrays automatisch einfügen Java Basics - Anfänger-Themen 10
J Wie kann ich Images per Tastendruck anzeigen/einfügen? Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
J Scroll-Leiste einfügen Java Basics - Anfänger-Themen 12
U Sound einfügen Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
P Variablen Wie kann ich eine lokale Variable in eine andere Methode einfügen? Java Basics - Anfänger-Themen 27
S Bild einfügen Java Basics - Anfänger-Themen 16
D Taschenrechnerereignisse einfügen Java Basics - Anfänger-Themen 18
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
D Datenbankzugriff - Leere Zeile einfügen Java Basics - Anfänger-Themen 2
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
A Objekte in eine Liste einfügen Java Basics - Anfänger-Themen 7
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
F Collections Sortierung und Einfügen von Elementen Java Basics - Anfänger-Themen 1
K Erste Schritte Classe in andere Einfügen?? Java Basics - Anfänger-Themen 12
P Klasse in Klasse einfügen (arrayliste) Java Basics - Anfänger-Themen 7
F Bibliotheken einfügen ??? Java Basics - Anfänger-Themen 2
P Hintergrundbild in Swing einfügen Java Basics - Anfänger-Themen 3
T HashMap Werte einfügen, durchsuchen und auslesen Java Basics - Anfänger-Themen 17
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
Q Erste Schritte In CharArrayWriter Zeichen an Stelle einfügen Java Basics - Anfänger-Themen 4
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
I fertige xml-datein in eine noch aufzubauende xml-datei einfügen Java Basics - Anfänger-Themen 4
N JTable - Zellfarben ändern, GUI-Komponenten in Zellen einfügen Java Basics - Anfänger-Themen 5
B Ordner in jar dateien einfügen Java Basics - Anfänger-Themen 4
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
J Bild einfügen Java Basics - Anfänger-Themen 3
S Musik einfügen funktioniert noch nicht Java Basics - Anfänger-Themen 6
K paint() mit einfügen Java Basics - Anfänger-Themen 14
A Sortiertes Einfügen in Liste Java Basics - Anfänger-Themen 2
B org.apache.commons.... Folder in Projekt einfügen Java Basics - Anfänger-Themen 6
Kenan89 String in ObjectList einfügen Java Basics - Anfänger-Themen 2
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
A SwingX in Eclipse einfügen Java Basics - Anfänger-Themen 5
B Einfügen von Dateien Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
M Video in ClassLoader einfügen Java Basics - Anfänger-Themen 7
S Itext und eine neue Zeile einfügen Java Basics - Anfänger-Themen 2
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
K Fehler beim Einfügen eines Programm Icons Java Basics - Anfänger-Themen 6
Binary.Coder Vor und nach jeder Codezeile etwas einfügen Java Basics - Anfänger-Themen 3
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
D Input/Output Zeilen aus txt-datei in Java-Liste einfügen Java Basics - Anfänger-Themen 9
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
T Bild in JFrame einfügen Java Basics - Anfänger-Themen 2
L Element in Mitten eines Arrays einfügen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben