ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ

Введение

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

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

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

Язык программирования Паскаль обеспечивает явное манипулирование не только данными, но и адресами области памяти, где они хранятся. Это предполагает четкое разграничение в обозначении данных и ссылок на них. В Паскале для работы с динамическими объектами предусмотрен специальный тип значений — ссылочный. Значением этого типа является ссылка на какой-либо программный объект, по которой осуществляется непосредственный доступ к этому объекту. Значения переменных ссылочного типа определяются в процессе выполнения программы и для удобного формирования таких значений в языке Паскаль предусмотрены средства, которые будут рассмотрены ниже.