O listă legată de XOR este o structură de date similară cu o listă obișnuită dublu legată , cu toate acestea, fiecare element stochează o singură adresă compusă - rezultatul XOR a adreselor elementelor anterioare și următoare ale listei.
Pentru a vă deplasa prin listă este necesar să aveți adresele a două elemente consecutive.
Efectuarea unei operații XOR asupra adresei primului element și a adresei compuse stocate în al doilea element generează adresa elementului care urmează celor două elemente.
Prin XOR adresa compozită stocată în primul element și adresa celui de-al doilea element rezultă adresa elementului care precede aceste două elemente.
Lista clasică dublu legată stochează separat adresele elementului anterior și următor al listei, care necesită două pointeri pentru a stoca:
... A B C D E ... –> next –> next –> next –> <– prev <– prev <– prev <–Suprafața unei liste legate de XOR este la jumătate, deoarece stochează o singură „adresă” - pointeri XOR către elementele anterioare și următoare:
... A B C D E ... <–> A⊕C <-> B⊕D <-> C⊕E <->Printre neajunsuri, putem aminti o implementare mai complexă, incapacitatea de a utiliza garbage collector standard , dificultăți în depanarea programului [1] .
Este folosit destul de rar, deoarece există alternative bune, cum ar fi o listă de link-uri extinsă .