Нужна информация о скип-листах - PullRequest
4 голосов
/ 02 апреля 2012

В пропущенном списке, таком как этот:

skip list

Имеет ли элемент 4 доступ к себе во втором и третьем списке? Причина, по которой я спрашиваю, состоит в том, что я пытаюсь понять, как реализовать операцию удаления для списка пропуска. Спасибо

1 Ответ

1 голос
/ 02 апреля 2012

Да, в списке пропусков, каждый из указателей имеет некоторый способ получить вас к фактическим записям. Как правило, вы реализуете это, когда каждый из указателей указывает не на ячейку связанного списка в какой-либо записи, а на саму запись. Пока вы помните текущую глубину, на которой находитесь, вы можете продолжать движение по связанному списку, проиндексировав массив указателей, хранящихся в следующей ячейке.

Например:

struct Cell {
    Cell* pointers[]; // Each points to the root of a new Cell
    Type data;
};

Надеюсь, это поможет!

...