Ich versuche, verknüpfte Listen in Java und hatte einige Fragen über den Code unten zu lernen:Wie erstelle ich einen Wurzelknoten in einer verknüpften Liste?
public class List {
Node root;
public List() {
// constructor
}
public int pop() {
// pop logic
}
public int push(int data) {
// push logic
}
}
Ich möchte eine Liste Klasse haben für popping und Daten in der verknüpften Liste schieben. Da die Liste jedoch keine Standarddaten zur Instanziierung enthält, was wäre der beste Weg, um einen Verweis auf den Stammknoten zu speichern?
In C, hätte ich nur einen Zeiger wie:
Node * root;
Aber da Java-Zeiger nicht hat, würde eine einfache Erklärung, die wie:
Node root;
... akzeptabel? Ich habe Java seit einiger Zeit nicht mehr verwendet, aber Speicher nicht einem Objekt zugewiesen, das als Klassenvariable deklariert ist und Speicherprobleme verursacht. Vielen Dank!
Variablen speichern Werte. Für nicht-primitive Typen sind diese Werte (intern) "die Referenz" für das Objekt oder null. Ich bevorzuge es, den Begriff "Namen" zu verwenden, z. 'Knoten n1 = neuer Knoten(); Knoten n2 = n1; '-> der neue Knoten" wird durch "n1 und n2 (es ist das * gleiche * Knoten-Objekt) benannt, da beide Variablen dasselbe Objekt" auswerten ". Dieses Verhalten ähnelt den Zeigern in C/C++. Für nicht-primitive Typen gibt es * no * implizite Kopie/Duplizieren/Klonen auf einer Zuweisung (oder bei der Übergabe an eine Methode); das unterscheidet sich von Kopierkonstruktoren in C++. –