Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к курсу программирования.doc
Скачиваний:
4
Добавлен:
09.09.2019
Размер:
878.08 Кб
Скачать

46.Связанные динамические данные.

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

Для организации связей между элементами динамической структуры данных требуется, чтобы каждый элемент содержал кроме информационных значений как минимум один указатель. Отсюда следует, что в качестве элементов таких структур необходимо использовать записи, которые могут объединять в единое целое разнородные элементы.

В простейшем случае элемент динамической структуры данных должен состоять из двух полей: информационного и указательного.

Схематично такую структуру данных можно показать следуют образом

:

Соответствующие ей объявления будут иметь такой вид:

type

tptr=^telem;

telem=record

inf:real;

link:tptr

end;

Правило последовательности описаний в Turbo Pascal требует, чтобы каждый идентификатор был описан, прежде чем он буде! использоваться для других объявлений Однако в приведенном примере, как бы ни распочагались описания типов указателя TPtr и зльмента ГЕ!ет. это правило выпотнено не будет Поэтому, дня описания типок элементов динамических структур данных сделано исключение "Тип указателя на элемент динамической структуры данных может и должен быть описан перед описанием типа этого элемента".

47. Связанные динамические данные: очередь.

Определение: Очередь - это данные динамической структуры, которые представляют собой совокупность линейно-связанных однородных элементов, для которых разрешены только два действия: добавление элемента в конец (хвост) очереди и удаление элемента из начала (головы) очереди.

Очередь функционирует по принципу FIFO (First - In - First- Out) - "первым пришел - первым исключается".

Очереди можно подразделить на две группы: статистические и динамические.

Статистические очереди представляют собой структуры ограниченной длины (т.е. с фиксированным числом элементов, которые могут одновременно находиться в ней). Как правило, подобные очереди располагаются в памяти как непрерывная последовательность байтов. Простейший пример статистической очереди - одномерный массив.

Динамические очереди фиксированной длины не имеют. Эти очереди могут содержать больший объём данных и позволяют более экономно расходовать оперативную память. Примером структуры такого типа может служить очередь, используемая для обработки событий. Объекты получают данные (события) для обработки из динамической очереди, в которую они поступают по мере появления. Такая структура позволяет буферизировать до обработки практически любое (в пределах размера динамической памяти) количество событий и более экономно расходовать память.

Описание очереди

Type Tptr=^TElem; {Тип указателя на элемент очереди }

TElem=record { Тип элемента очереди : }

inf : char; { информационная часть }

link : Tptr { соединительная часть }

end;