У всех ADT в Java должны быть итераторы? - PullRequest
0 голосов
/ 14 сентября 2018

Я читал книгу алгоритмов Роберта Седжвика, и я наткнулся на главу 1.3 о ADT, и у меня есть несколько вопросов.

Все ли ADT в java повторяемы?

Значит ли это, что мыНужно ли реализовывать итератор каждый раз, когда мы внедряем ADT?

Если да, могу ли я создать отдельный API для итератора?Потому что на странице 141 он сделал интерфейс только для Итератора.

Я разговаривал с другом, и он сказал: «Экземпляр ADT может быть изменен (то есть элементы добавлены / удалены / или изменены) при повторении»не так ли это, потому что в сумке элементы не могут быть удалены?

1 Ответ

0 голосов
/ 14 сентября 2018

Абстрактный тип данных - это не что иное, как набор операций вместе с контрактом на эти операции.Как правило, существует несколько возможных реализаций ADT, которые могут показывать разные нефункциональные характеристики (например, время выполнения операций) или различное поведение в областях, которые не указаны в контракте.Это зависит от природы конкретного ADT, если итерация является одной из операций.Это не обязательно.

В Java вы можете определять только сигнатуры операций (например, в интерфейсе).Контракт должен быть предоставлен неофициально, например, в Javadoc.

...