Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Род C. “Delphi Готовые алгоритмы”

.pdf
Скачиваний:
512
Добавлен:
28.06.2014
Размер:
48.42 Mб
Скачать
Рис. 4.5. Трехмерный нерегулярный массив

Нерегулярные массивы

На рис. 4.5 схематически показана трехмерная структура данных, представленная с помощью нумерации связей. Метки закрашены серым цветом. Они указывают на позицию позади значащих данных следующего массива.

Представление нерегулярных массивов в линейном виде требует минимальных затрат памяти. «Впустую» расходуется только память, занимаемая метками.

С помощью подобной структуры данных можно быстро и легко перечислить вершины многоугольника. Так же просто сохранять эти данные на диске и загру-

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

На рис. 4.6 показано представление в виде нумерации связей массива с рис. 4.4 после добавления одной точки к первому многоугольнику. Измененные элементы закрашены серым цветом. Как видно из рисунка, такими являются почти все элементы обоих массивов.

Рис. 4.6. Добавление точки при линейном представлении

Нерегулярные связанные списки

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

вершины.

Следующий код приводит объявления типа данных, которые можно использовать для построения изображений, состоящих из многоугольников на основе связанных списков.

Соседние файлы в предмете Программирование на Delphi