Kann nicht scheinen, was ich hier vermisse. Ich weiß, wie man richtig einen neuen Knoten am Anfang meiner verkettete Liste einzufügen:Endknoten zur verketteten Liste hinzufügen
void InsertBeginning(int val) {
Node *n = new Node();
n->data = val;
n->next = A;
A = n;
DisplayList(); //prints list
}
Und nun wünsche ich das Gleiche zu tun, aber am Ende meiner Liste, so dann ich dies gemacht:
void AddNode(int val) {
Node *n = new Node();
n->data = val;
n->next = A;
//finds last empty node
while (n->next != NULL) {
n = n->next;
}
A = n;
DisplayList();
}
Aber das alles löscht alles außer meinem ersten Knoten.
folgt tut das Bearbeiten nicht einmal kompilieren , geschweige denn das Richtige tun. E: Da gehst du. ;) –
Vielleicht kann auch die DisplayList() aufgerufen werden, bevor Sie zur leeren Liste zurückkehren. ;) –
Wenn Sie den "Tail" -Knoten der Liste verfolgen, werden die Einfügungen am Ende viel schneller und effizienter, da Sie die Liste nicht mehr durchlaufen müssen: 'void AddNode (int val) {Node * n = neuer Knoten(); n-> Daten = Wert; n-> next = NULL; if (! Kopf) {Kopf = n; } if (tail) {tail-> next = n; } Schwanz = n; DisplayList(); } ' –