Чем отличаются разные типы итераторов?

Доброго времени суток.

Задача: Необходимо описать основные типы итераторов по структурам данных и различия между ними.

Что я получил пытаясь решить задачу самостоятельно: Выделяют три типа итераторов - однонаправленные, двунаправленные и итераторы произвольного доступа.

  1. Однонаправленные итераторы позволяют перебирать элементы по одному только в одном заранее определенном порядке. Тут важно подчеркнуть что речь идет именно о порядке перебора элементов, т.к. сама структура данных может вообще не давать каких-либо гарантий касательно порядка хранения элементов (например хеш-таблицы). Пример - интерфейс Iterator в Java или IEnumerator в C#.

  2. Двунаправленные итераторы позволяют перебирать по одному элементу в двух направлениях порядка перебора элементов. Могут быть реализованы для структур данных поддерживающих определенный порядок хранения элементов (например списки и деревья поиска). Пример ListIterator в Java.

  3. Итераторы произвольного доступа позволяют перебирать элементы в двух направлениях, причем на каждой итерации можно переходить не только к "соседнему" элементу, но и указать на какое кол-во элементов нужно сдвинуться и в каком направлении. Пример ResultSet в Java.

Вопрос: Пожалуйста, укажите на ошибки которые я допустил (если они есть). Упустил ли я что-то важное?


Ответы (0 шт):