Перереализация структур данных в реальном мире

Тема класса алгоритмов сегодня повторно реализовывала структуры данных, конкретно ArrayList в Java. То, что можно настроить структуру для различными способами определенно, получило меня заинтересованный, особенно с изменениями добавляют () и iterator.remove () методы.

Но действительно ли перереализация и настройка являются структурой данных что-то, что более интересно для академиков по сравнению с реальными программистами? Кто-либо повторно реализовал их собственную версию структуры данных в коммерческом применении / программа, и почему Вы выбирали тот маршрут по реализации своего конкретного языка?

6
задан Dan Rigby 3 May 2012 в 19:11
поделиться

1 ответ

Знание того, как реализуются и могут быть реализованы структуры данных, безусловно, представляет интерес для всех, а не только для ученых. Хотя вы, скорее всего, не будете переделывать структуру данных, если язык уже предоставляет реализацию с подходящими функциями и характеристиками производительности, вполне возможно, что вам придется создать свою собственную структуру данных путем компоновки других структур данных... или вам может понадобиться реализовать структуру данных с поведением, несколько отличающимся от поведения известной структуры данных. В этом случае вам, конечно, понадобится знать, как реализована исходная структура данных. Или же вам может понадобиться несуществующая структура данных, которая обеспечивает поведение, сходное с поведением существующей структуры данных, но способ ее использования требует, чтобы она была оптимизирована для другого набора функций. Опять же, такая ситуация потребует от вас знаний о том, как реализовать (и изменить) структуру данных, так что да, это представляет интерес.

Edit
Я не выступаю за то, чтобы вы переделывали существующие структуры данных! Не делайте этого. Я говорю о том, что эти знания имеют практическое применение. Например, вам может понадобиться создать двунаправленную структуру данных map (которую вы можете реализовать, составив две однонаправленные структуры данных map), или вам может понадобиться создать стек, который отслеживает различные статистики (такие как min, max, mean), используя существующую структуру данных stack с типом элемента, который содержит значение, а также эти различные статистики. Вот несколько тривиальных примеров того, что вам может понадобиться реализовать в реальном мире.

4
ответ дан 17 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: