J'étudie des structures de données et des listes liées, mais je ne comprends pas comment faire une copie d'une liste chaînée. Quelqu'un peut-il expliquer cela, éventuellement en utilisant un pseudocode ou un code C?Comment copier une liste liée dans une autre liste?
5
A
Répondre
16
La logique de la duplication d'une liste chaînée est récursive et sur la base des observations suivantes:
- Le clone de la liste vide est la liste vide.
- Le clonage d'une liste avec le premier nœud x et les nœuds restants xs est une copie de x ajoutée à un clone de xs.
Si vous encodez la liste chaînée en C++, cela peut être très propre:
struct Node {
int value;
Node* next;
};
Node* Clone(Node* list) {
if (list == NULL) return NULL;
Node* result = new Node;
result->value = list->value;
result->next = Clone(list->next);
return result;
}
5
Savez-vous comment ajouter un nouveau nœud à une liste existante? Et comprenez-vous comment parcourir (c'est-à-dire parcourir) une liste? La copie d'une liste consiste simplement à effectuer ces deux opérations simultanément (traverse ListA, pour chaque élément, copie l'élément et l'ajoute en tant que nouveau nœud à ListB).
Questions connexes
- 1. Comment copier les noms d'une liste à une autre liste
- 2. HTML Copier d'une liste vers une autre liste?
- 3. Copier une liste déroulante dans une autre cellule
- 4. Copier une liste d'objets dans une autre liste tapée dans une ligne de code
- 5. Ajouter une liste dans une autre liste
- 6. Comment copier une liste dans Scala
- 7. liste liée throws une IndexOutOfBoundsException
- 8. Copier une liste des fichiers dans une liste de fichiers dans un autre dossier
- 9. Remplir un tableau dans une liste liée?
- 10. Comment trier une liste liée en SQL?
- 11. comment copier une liste dans une nouvelle liste, ou récupérer la liste par valeur dans C#
- 12. Comment insérer une liste dans une autre liste en python?
- 13. Comment créer une liste dans une autre liste?
- 14. Suppression de nœuds dans une liste liée
- 15. Comment effectuer une recherche dans une liste XML liée?
- 16. Comment exécuter une sélection Trier dans une liste liée?
- 17. Comment afficher une liste liée dans une structure en C
- 18. copier une liste en python
- 19. liste des dictionnaires en double copier une seule entrée à une autre liste
- 20. Contrôle de cohérence pour une liste liée
- 21. Databind une liste qui se trouve dans une autre liste
- 22. Rechercher une liste dans une autre liste en C#
- 23. Comment copier des éléments d'une zone de liste vers une autre zone de liste?
- 24. Comment faire une liste générique égale une autre liste générique
- 25. En Python, comment indexer une liste avec une autre liste?
- 26. Liste liée dans Java
- 27. Faire une liste dans une autre application
- 28. LINQ: Comment Append Liste des éléments dans une autre liste
- 29. Copier d'une liste de tableaux à une autre
- 30. Nommer une liste d'un élément dans une autre liste
C'est vraiment un beau morceau de code! – LunaticSoul