типы представления данных должны накладывать
типы представления данных должны накладывать как можно меньше ограничений; описание и использование типа должно быть как можно проще и удобнее в использовании; вмещать в себя как можно больше полезных функций (быстрый поиск, сортировка и т. п.); описание не должно провоцировать ошибок и не точностей в работе алгоритма. Рассмотренные структуры данных позволяют размешать в оперативной памяти информацию с заранее не известным размером. ДМ, по сравнению с классами списков, делает это более изящным образом. Но, если по алгоритму заранее не известен размер массива, удобно использовать ООП как у линейных списков. В алгоритмах, где быстрота работы с линейным списком и занимаемая им память, имеют первостепенное значение предпочтительнее не использовать встроенных классов СРП, которые разрабатываются в основном для простых визуальных задач. Более того, с развитием вычислительной техники (увеличением размеров доступной оперативной памяти, широким внедрением многопроцессорных вычислительных устройств и т. п.), ОС и СРП разработка классов позволяющих манипулировать сложными структурами данных приобретает первостепенное значение для большого круга задач.
Пояснения к программам, иллюстрирующим статью:Все директории сжаты в архив
"biglist.zip". Внутри архива:
- директория "XMS в DOS" содержит исходные тексты проекта (на Borland Pascal 7.0) системы "Кадры" иллюстрирующего использование большой оперативной памяти (ОП) в 16-разрядных приложениях;
- директория "Массивы\При переполнении вдвое" и "Массивы\Увеличение на фиксированную величину" проекты (далее только на Delphi) иллюстрирующие применение объектов расширяющих возможности динамического массива;
- директория "Списки\Контейнер с Tlist и проверкой типа узла" и "Списки\Наследник от Tlist, контейнер с TList" содержит исходные тексты проектов, частично взятые из Internet, и иллюстрирующие варианты использования класса Tlist;
- директория "Списки\Свой список" содержит модуль RecList.pas с классом поддерживающим динамический список;
- директория "Списки\Список с сжатием" содержит модуль RecList.pas, K_Lib с классом поддерживающим динамический список с сжатием;
Скачать примеры проектов -
(300 K)
август 2000 г.
Зачёсов Ю.Л.
ЛИТЕРАТУРА
"Искусство программирования для ЭВМ" том II, Д. Кнута. "Алгоритмы построение и анализ", Т.Кормен, Ч.Лейзерсон, Р.Ривест, МЦНМО, Москва, 1999г.
Содержание Назад Вперед