Comment mettre en œuvre une double liste chaînée avec un seul pointeur?

Comment mettre en œuvre une double liste chaînée avec un seul pointeur?

Il prend O(1) le temps de trouver le précédent et suivant Nœud.

struct Node
{
   int val;
   Node* p;
};
Limiter la liste à un maximum de deux nœuds 😛
Liste doublement chaînée? Tu veux dire que l'on doit être capable de traverser les deux méthodes pour avoir un externe pointeur de aucun de ses nœuds?
Ce problème intéressant paru dans le livre "Programmation Perl" (colonne) 9 ainsi. Alors que XOR solution de base est souvent proposé (peut-être parce que, au cours de ces époque, l'arithmétique des pointeurs était très commun), j'ai trouvé une solution donnée ci-dessous par "Anna" fait qu'il est extrêmement intéressant, surtout lorsque l'arithmétique des pointeurs n'est pas viable.

OriginalL'auteur MainID | 2009-11-18