Si la liste ressemble à ceci:
***************
head->*Data: XXX *
*Prev: NULL * ***************
*Next: --------> * Data: YYY *
*************** <----Prev: * ***************
* Next: --------> * Data: ZZZ *
***************<------Prev: *
* Next: NULL *
***************
maintenant: Ajouter le nouvel élément
head = new dnode<dataType> (AAA,NULL,head);
***************
head->*Data: AAA *
*Prev: NULL * ***************
*Next: --------> * Data: XXX *
*************** * Prev: NULL * ***************
* Next: --------> * Data: YYY *
***************<------Prev: * ***************
* Next: --------> * Data: ZZZ *
***************<------Prev: *
* Next: NULL *
***************
Notez que le deuxième élément de la chaîne. Le membre Prev est toujours NULL. Donc, pour ajouter le lien du deuxième élément à la tête.
head->next->prev=head;
***************
head->*Data: AAA *
*Prev: NULL * ***************
*Next: --------> * Data: XXX *
***************<-----Prev: * ***************
* Next: --------> * Data: YYY *
***************<------Prev: * ***************
* Next: --------> * Data: ZZZ *
***************<------Prev: *
* Next: NULL *
***************
Ainsi, vous pouvez penser à la ligne:
head->next->prev=head;
// This is equivelant too:
oldHead = head->next;
oldHead->prev = head;
Je l'ai fait. Utilisez le bouton 10101 dans l'éditeur. –
J'essaie aussi de corriger le formatage de ce code mais il semble que mes modifications et les vôtres s'affrontent ...! -) –