3.
Этот вид связанного списка в настоящее время не очень практичен. Его главное преимущество - экономия памяти, которая обычно дешевая и в изобилии. В статье в Википедии, на которую вы ссылаетесь, довольно четко изложены недостатки:
Эта форма связанного списка может быть
нецелесообразной:
- Средства отладки общего назначения не могут следовать цепочке XOR, что затрудняет отладку;
- Ценой уменьшения использования памяти является увеличение сложности кода, что делает обслуживание более дорогим;
- Большинство схем сборки мусора не работают со структурами данных, которые не содержат литеральных указателей;
- XOR указателей не определено в некоторых контекстах (например, язык C), хотя многие языки обеспечивают какое-то преобразование типов между указателями и целыми числами;
- Указатели будут нечитаемыми, если никто не просматривает список - например, если указатель на элемент списка содержался в другой структуре данных;
- При обходе списка вам необходимо запомнить адрес ранее посещенного узла, чтобы вычислить адрес следующего узла.
Компьютерные системы имеют все больше
дешевая и обильная память, и
затраты на хранение обычно не
главный вопрос за пределами специализированной
встроенные системы. Где это еще
желательно уменьшить накладные расходы
связанный список, развертывание обеспечивает более
практический подход (а также другие
преимущества, такие как увеличение кеша
производительность и превышение скорости
доступ).