XOR linkitetty luettelo

XOR-linkitetty lista  on tietorakenne, joka muistuttaa tavallista kaksoislinkitettyä listaa , mutta jokainen elementti tallentaa vain yhden yhdistetyn osoitteen  - tulos listan edellisen ja seuraavan elementin osoitteiden XOR-korjauksesta.

Listassa liikkumiseen tarvitaan kahden peräkkäisen elementin osoitteet.

XOR-operaation suorittaminen ensimmäisen elementin osoitteelle ja toiseen elementtiin tallennetulle yhdistelmäosoitteelle tuottaa näitä kahta elementtiä seuraavan elementin osoitteen.

XOR-korjaus ensimmäiseen elementtiin tallennetun yhdistelmäosoitteen ja toisen elementin osoitteen avulla tuottaa näitä kahta elementtiä edeltävän elementin osoitteen.

Vertailut

Kaksoislinkitetty lista

Klassinen kaksoislinkitetty lista tallentaa erikseen luettelon edellisen ja seuraavan elementin osoitteet, joiden tallentamiseen tarvitaan kaksi osoitinta:

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

XOR-linkitetyn listan yläraja on puolet pienempi, koska se tallentaa vain yhden "osoitteen" - XOR-osoittimet edelliseen ja seuraavaan elementtiin:

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

Haitat

Puutteista voidaan mainita monimutkaisempi toteutus, kyvyttömyys käyttää tavallista roskakeräystä , vaikeudet ohjelman virheenkorjauksessa [1] .

Käyttö

Sitä käytetään melko harvoin, koska on olemassa hyviä vaihtoehtoja, kuten laajennettu linkitetty luettelo .

Katso myös

Muistiinpanot

  1. GC FAQ - luonnos . Käyttöpäivä: 17. joulukuuta 2012. Arkistoitu alkuperäisestä 9. tammikuuta 2013.

Linkit