Bonjour,
Je dois réaliser la fusion de deux listes chaînées. J'ai une contrainte qui m'impose de réaliser la fusion en temps constant.
J'ai donc implémenté ma liste chainée qui possède deux références :
- une sur mon maillon de tête (front)
- une sur ma maillon de fin (tail)
Mes données contenues dans mes maillons possède un objet et lien vers le maillon suivant (next).
Pour fusionner une liste (list2) à une autre (list1), je fais
La fusion se passe correctement en temps constant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 list1.tail.setNext(list2.front); list1.tail = list2.tail
Mon problème vient du fait que je dois par la suite modifier ma deuxième liste. Cela engendre des changements dans ma première liste que je ne souhaite pas.
J'aimerais spécifier que le list1.tail.next est différent du list2.tail.next mais je ne trouve pas de solution.
Qqn aurait-il une idée?
Si je n'ai pas été clair, faites le savoir!
merci d avance!
Partager