Propojený seznam XOR

Seznam propojený s XOR  je datová struktura podobná běžnému dvojitě propojenému seznamu , avšak každý prvek ukládá pouze jednu složenou adresu  – výsledek XORingu adres předchozího a dalšího prvku seznamu.

Pro pohyb v seznamu je nutné mít adresy dvou po sobě jdoucích prvků.

Provedení operace XOR na adrese prvního prvku a složené adrese uložené ve druhém prvku poskytne adresu prvku následujícího po těchto dvou prvcích.

XORing složené adresy uložené v prvním prvku a adresy druhého prvku poskytne adresu prvku předcházejícího těmto dvěma prvkům.

Srovnání

Dvojitě propojený seznam

Klasický dvojitě propojený seznam ukládá odděleně adresy předchozího a následujícího prvku seznamu, které vyžadují uložení dvou ukazatelů:

... A B C D E ... –> next –> next –> next –> <– prev <– prev <– prev <–

Režie seznamu propojeného s XOR je poloviční, protože ukládá pouze jednu "adresu" - XOR ukazatele na předchozí a následující prvky:

... A B C D E ... <–> A⊕C <-> B⊕D <-> C⊕E <->

Nevýhody

Z nedostatků můžeme zmínit složitější implementaci, nemožnost použít standardní garbage collector , potíže s laděním programu [1] .

Použití

Používá se poměrně zřídka, protože existují dobré alternativy, jako je například rozšířený seznam odkazů .

Viz také

Poznámky

  1. GC FAQ - draft . Datum přístupu: 17. prosince 2012. Archivováno z originálu 9. ledna 2013.

Odkazy