Ich habe Probleme beim Entfernen von Knoten aus einer einfach verknüpften Liste. Beim Versuch, keinen ersten Knoten zu entfernen. Es scheint für den Rest der Liste Bezug zu verlieren. Kann jemand helfen? Dies ist die Funktion in Frage, es nimmt den Kopf der Liste und die Platte des Knotens entfernt werden.Problem beim Entfernen von Knoten aus der Liste
Antwort
Wenn Sie das erste Element aus der Liste entfernen, sind alle Zeiger, die Sie auflisten müssen, jetzt ungültig. Wenn Sie list = current -> next;
setzen, ist dieser Wert der Liste lokal für Ihre Funktion, er geht nie wieder aus Ihrer Funktion heraus, um den Zeiger zu aktualisieren, den Sie an die Funktion für den Anfang Ihrer Liste übergeben.
Um zu tun, was Sie wollen, benötigen Sie einen Zeiger auf einen Zeiger.
Car * removeCarFromList(Car ** list,char plate[])
dann ändern Strom zu: Car * current = *list;
dann list = current->next
zu *list = current->next;
Dann
ändern, wenn Ihre Funktion ändern removeCarFromlist(myPointer,....
zu removeCarFromlist(&myPointer, ....
Diese MyPointer zum nächsten Element in der Liste Punkt ändert aufrufen, wenn der erste Punkt ist entfernt.
Danke! Außerdem versuche ich meine Liste auf der Basis von Autos zu sortieren, wobei die Liste vom niedrigsten zum höchsten Wert geht. Kannst du helfen? –
Sobald Sie return
aus einer Funktion, gibt es keine Rückkehr zurück auf die nächste Anweisung an die gleiche Funktion, so Verwendung von break
nach return
ist unsinnig. Zuerst, loswerden break
Anweisung nach return
.
Funktion Handhabung verkettete Liste Knoten Entfernung muss das Löschen von head
Knoten behandelt separat, darauf achten, dass die neuen head
zum nächsten Knoten aktualisiert wird.
Node *tmp = *head;
*head = tmp->next;
free(tmp);
Meine schlechte..fixed.thanks –
- 1. Entfernen von geklonten Knoten aus der Liste
- 2. Problem beim Entfernen von false aus der Liste mit isinstance
- 3. Entfernen von Knoten aus der verknüpften Liste funktioniert nicht richtig
- 4. Entfernen von Elementen aus der Liste beim Überschleifen
- 5. C Knoten aus verknüpfter Liste entfernen
- 6. Einen Knoten aus der Mitte einer einfach verknüpften Liste entfernen?
- 7. Probleme beim Entfernen von Elementen aus der Liste
- 8. Problem beim Hinzufügen von Knoten zu einer doppelt verknüpften Liste
- 9. Probleme beim Entfernen von Elementen aus einer Liste beim Durchlaufen der Liste
- 10. Entfernen von Knoten aus RABL
- 11. C# Wie bestimmte Knoten aus der Liste entfernen
- 12. Entfernen von YourSelf aus der ShareActionProvider-Liste
- 13. Entfernen von Sonderzeichen aus der Liste
- 14. Probleme beim Entfernen von Knoten aus XML-Datei mit Java
- 15. clisp: aus der Liste entfernen
- 16. Entfernen von Duplikaten aus der Dropdown-Liste
- 17. Entfernen von doppelten Strings aus der Liste?
- 18. Entfernen von Duplikaten aus der verschachtelten Liste
- 19. Interpunktion aus der Liste entfernen
- 20. Problem beim Entfernen von Ereignisquellen aus FullCalendar (jQuery)
- 21. Liste der Taxonomiebegriffe aus einer Liste von Knoten ohne Duplikate
- 22. Problem aus der Liste vererben
- 23. Problem beim Entfernen eines Elements aus einem Array
- 24. Entfernen der aktiven Klasse beim Klick-Problem
- 25. Übersprungene Knoten beim Sortieren der verknüpften Liste
- 26. Problem beim Entfernen der Steuerelemente dynamisch
- 27. Problem beim Entfernen von Wörtern mit einer Mischung aus Buchstaben und Zahlen aus der Zeichenfolge
- 28. Knoten: Entfernen von doppelten Objekten aus Array
- 29. Entfernen Zeichenfolge aus der Liste aus, wenn Liste String
- 30. Element aus der String-Liste entfernen?
Der erste Knoten in einer Liste *** ist *** die * Listenadresse *. Wenn Sie den ersten Knoten ändern, müssen Sie auch die als Listenadresse gespeicherte Adresse ändern. Daher haben Sie zwei Möglichkeiten: 1) übergeben Sie die * Adresse von * dem ersten Knoten in der Liste, damit dieser die neue erste Knotenadresse in der Funktion zugewiesen werden kann, oder 2) geben Sie die neue Listenadresse von der Funktion als Adresse zurück die neue Listenadresse im Aufrufer. –