Lista conexă XOR

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.

Comparații

Listă dublu legată

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 <->

Dezavantaje

Printre neajunsuri, putem aminti o implementare mai complexă, incapacitatea de a utiliza garbage collector standard , dificultăți în depanarea programului [1] .

Utilizare

Este folosit destul de rar, deoarece există alternative bune, cum ar fi o listă de link-uri extinsă .

Vezi și

Note

  1. Întrebări frecvente GC - draft . Data accesului: 17 decembrie 2012. Arhivat din original la 9 ianuarie 2013.

Link -uri