Стандартные процедуры размещения и освобождения динамической памяти.
Стандартные процедуры размещениядинамической памяти.
1)New (P); - где Р - переменная типа «типизированный указатель».
2)GetMem (P,size); - где P - переменная типа «указатель» требуемого типа. size - целочисленное выражение размера запрашиваемой памяти в байтах. (Неожиданный поворот событий!)
Стандартные процедуры освобождения динамической памяти.
2)Dispose (P); - где P - переменная типа «указатель» (типизированный).
3) FreeMem (P, size); - где P - переменная типа «указатель», size - целочисленное выражение размера памяти в байтах для освобождения.
4) МАRK и RELEASE.
Mark (P);Release (P); - где P - переменная типа «указатель»;
RELEASE - освобождает всю динамическую память, которая выделена процедурами NEW или GETMEM после запоминания текущего значения указателя Р процедурой MARK.
13. Способы освобождения динамической памяти.(ЛБЯТЬ!!!!!Этот вопрос же сверху!!!!)
1) Автоматически по завершении всей программы.
2) С помощью стандартной процедуры Dispose (P);
3) С помощью стандартной процедуры FreeMem (P, size);
4) С помощью стандартных процедур МАRK и RELEASE.
Стандартные функции обработки динамической памяти.
В процессе выполнения программы может возникнуть необходимость наблюдения за состоянием динамической области. Цель такого наблюдения - оценка возможности очередного выделения динамической области требуемого размера.
MaxAvail; - Эта функция возвращает размер в байтах наибольшего свободного в данный момент участка в динамической области.Тип возвращаемого значения - longint.
MemAvail;-Эта функция возвращает общее число свободных байтов динамической памяти, то есть суммируются размеры всех свободных участков и объем свободной динамической области. Тип возвращаемого значения - longint.
Бинарное дерево. Построение бинарного дерева с элементами:35, 10,15,8,20,27.
_____35______
__10_________
8____15______
________20___
___________27
Организация списков.
Список - структура данных, в которой каждый элемент имеет информационное поле (поля) и ссылку (ссылки), то есть адрес (адреса), на другой элемент (элементы) списка.
Каждый элемент списка содержит информационную и ссылочную части. Для однонаправленного списка элемент должен содержать как минимум два поля: одно поле типа «указатель», другое - для хранения данных пользователя. Для двунаправленного - три поля, два из которых должны быть типа «указатель».
В отличие от элементов массива элементы списка могут располагаться в памяти в свободном порядке, не подряд. Порядок их обработки определяется ссылками, то есть в общем случае очередной элемент своей ссылкой указывает на тот элемент, который должен быть обработан следующим. Последний по порядку элемент содержит в ссылочной части признак, свидетельствующий о необходимости прекращения обработки элементов списка, указывающий как бы конец списка.
В зависимости от числа ссылок список называется одно-, двунаправленным и т.д.
Если последний элемент списка содержит «нулевую» ссылку, то есть содержит значение предопределенной константы NIL, то такой список называется линейным.
Если дадим имя первому элементу FIRST, и если он будет равен NIL, то значит список пуст.
Если последний элемент содержит ссылку на первый элемент списка, то такой список называется кольцевым, циклическим.
17. Структура линейного однонаправленного списка.