So duplizieren Sie eine verkettete Liste in java?
Meine Node
Klasse, die einen Knoten eine verkettete Liste ist wie folgt definiert:
public class Node
{
Node next;
String data;
public Node (String data)
{
this.data = data;
}
}
und ich verwende es so:
Node node, head, tail;
String name; //name to be entered
int count = 0;
//initialize the head to null
head = null;
do
{
System.out.print ("Enter a name. Type q to end.");
name = stdin.readLine ();
//create a new node if the user doesn't type q
if (!name.equals ("q"))
{
node = new Node (name);
node.next = head;
count++;
//update the head to point to the new front of the list
head = node;
}
}
while (!name.equals ("q")); //loop continues until "quit" selected
node = head;
Angenommen ich wollte nach dem Namen einer Methode im Fall, dass ich ändern Sie die original-Liste. Wie kann ich dies tun? Ohne das schreiben auf eine Datei.
Name der variable, die gespeichert wird in der verlinkten Liste und nachdem der Benutzer die Taste q, die ich ändern möchten in der Liste und halten, was der Benutzer gespeichert, die als Backup im Fall, dass er/Sie will backtrack oder sehen Sie sich die original-Liste.
Sie haben ein paar Probleme mit diesem Ansatz, nämlich der Kapselung. Ich würde erwarten, dass die details der Implementierung (gelesen: der code) einer Klasse in einer einzelnen Klasse und die korrekten Zugriffsbeschränkungen verhindern, dass externe Prozeduren Durcheinander in der Liste. Auch; das sieht aus wie eine Hausaufgabe.
Ich Stimme zu, das sieht aus wie eine Hausaufgabe. Wenn es ist, bitte markieren Sie Sie als solche. Siehe meta.stackexchange.com/questions/18242/...
die "Hausaufgaben" - tag ist veraltet. stackoverflow.com/tags/homework/info
Ah danke, wusste nicht, dass...
Ich Stimme zu, das sieht aus wie eine Hausaufgabe. Wenn es ist, bitte markieren Sie Sie als solche. Siehe meta.stackexchange.com/questions/18242/...
die "Hausaufgaben" - tag ist veraltet. stackoverflow.com/tags/homework/info
Ah danke, wusste nicht, dass...
InformationsquelleAutor Fryon Alexandra | 2012-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
So dass es klingt, als ob Sie möchten, halten eine Geschichte der vor-Namen für jedes element in der verknüpften Liste. Ich würde vorschlagen, dass Sie speichern, ein array oder eine verkettete Liste innerhalb der einzelnen Knoten der verketteten Liste, zeigt die Vorgeschichte von diesem Element. Zum Beispiel:
Könnten Sie diese bevölkern in vielen Arten an, die alle wirklich davon abhängen, Ihre Nutzung Fall.
Auch, warum setzen Sie Ihre eigene Link-Liste? Java kommt bereits mit einer linked-list-Implementierung (java).util.LinkedList). Ich empfehle dies, wenn Sie benötigen eine geordnete Liste der verknüpften Liste Sorte. Wenn Sie dies getan haben, dann erstellen Sie eine neue Daten-Struktur enthalten sein, die hat einen Namen und eine Geschichte, dann pflegen Sie nur die Geschichte, die, wie zum Beispiel:
Schließlich, denken Sie daran, dass strings sind unveränderlich in Java. So ein string kann nicht geändert werden. Sie müssen nur zu halten eine Referenz auf die Vorherige Zeichenfolge irgendwo, Sie brauchen nicht zu kopieren Sie den Wert.
Letztlich zum kopieren einer Struktur von Objekten, die Sie benötigen, zu tun, was eine sogenannte Tiefe Kopie, im Grunde durch die gesamte Struktur und alle Sammlungen, und Klonen Sie jedes Objekt in ein neues Objekt.
InformationsquelleAutor squawknull
Wäre es besser, die Knoten unveränderlich. Also jedes mal, wenn Sie wollen, ändern Sie die Knoten, erstellen Sie einen neuen Knoten. Und speichern der alten in die Linkliste Geschichte.
InformationsquelleAutor David Ruan