JAVA eigene Node Klasse und zugehörige einfache Liste?
also ich hab mal versucht das selber zu implementieren, also bei der klasse node sowas wie
class Node{
int value;
Node next;
Node(int value){
this.value = value;
}
}
und in der Klasse Liste habe ich dann gesehen, dass man das so macht
class Liste {
Node front;
Liste(){
this.front =null;
}
und später wenn man dann werte aufnimmt in die liste, wird head dem ersten wert der aufgenommen wurde gleichgesetzt, aber wieso ?
weil wenn ich danahc werte aufnehme in der methode add() oder so oder append()
dann wird bis zum ende der liste iteriert, also :
Node n = head;
while(n.next != null){
n = n.next;
}
Node neu = new Node(6);
n.next = neu;
neu.next = null;
und der wert angehängt, wieso mache ich es nicht so, dass ich head auf irgendeinen value wert setze und next erstmal auf null, so wie man das auch bei den anderen macht, weil ich versteh das nicht, was mit head = null bzw. head = irgendeinKnoten ist, eigentlich hat dann head ja den value von dem neuen knoten abger das wäre ja dann redundant, aber dann heißt es wieder "head ist nur eine Referenz auf den 1. knoten" und wieso setzt man die gleich? wieso nicht head.next auf den neu erzeugten knoten setzen
1 Antwort
Das ist im Endeffekt ne linked list.
Und du musst doch wissen welche Mode deine Startnode ist. Also mit welcher die Kiste beginnt. Und auch nur die muss die Liste kennen umm durch die Liste zu iterieren.
Was ich etwas verwirrend finde ist das dinvariabl Head in deinem Code nirgends definiert ist. Meinst du eher die variable Front? Die I'm Konstruktor von Liste auf Null gesetzt wird?
Naja. Du musst ja irgendwie auf die nodes zugreifen.
Natürlich kannste die alle in einer Liste halten. Aber das wäre ja ein wenig doppelt gemoppelt. Wenn du in deiner Liste noch eine Liste benutzt.
Entsprechend hält man sich die erste Mode der Liste. Alle anderen sind ja dann über die jeweils vorherige node verlinkt.
Und wenn Front null ist. Dann ist die Liste schlichtweg leer. Weil du ja kein element drinnen hast.
Wenn du die variable Front nicht hättest. Wie würdest du sonst an deine verlinkten nodes rankommen?
ahcso ja hab head und front als synonym verwendet, also kannst du erklären was es mit front/head und referenz auf sich hat, wenn ich front auf null setze was bedeutet das? und was bedeutet es, wenn ich front auf einen knoten setze? wie funktioniert die referenz