- •Методические указания
- •Рассмотрено на заседании кафедры Утверждено на заседании кафедры
- •Зав.Кафедрой, к.Т.Н., доцент ___________________________с.В.Краснов
- •1. Работа с динамическими структурами данных.
- •1.1.Переменные – указатели.
- •1.2.Операции с указателями.
- •2. Динамические переменные.
- •2.1. Односвязные списки
- •2.2.Двусвязные списки.
- •2.3.Бинарные деревья.
Министерство высшего и среднего образования РФ
Волжский университет им. В.Н.Татищева
Факультет «Информатика и телекоммуникации»
Кафедра “Информатика и системы управления”
УТВЕРЖДАЮ
Проректор по УР
___________Е.В.Филатова
«____»_____________2001г.
Методические указания
для выполнения лабораторных работ
по дисциплине “Алгоритмические языки и программирование”
на тему “Динамические переменные”
Тольятти
2001
оглавление
1. Работа с динамическими структурами данных. 4
1.1.Переменные – указатели. 4
1.2.Операции с указателями. 5
2. Динамические переменные. 6
2.1. Односвязные списки 6
2.2.Двусвязные списки. 12
2.3.Бинарные деревья. 14
Методическое пособие предназначено для студентов дневного и заочного отделений специальностей «Информационные системы» и «Вычислительные машины, комплексы, системы и сети» для ознакомления студентов с краткими теоретическими сведениями по динамическим переменным, односвязными списками, двусвязными списками, бинарными переменными.
Составитель:
ст. преподаватель Ахмедханлы Д.М.
Рассмотрено на заседании кафедры Утверждено на заседании кафедры
«Информатика и системы управления» «Информатика и системы управления»
«____»_____________________2001г. Протокол №______
от «____»___________________2001г.
Зав.Кафедрой, к.Т.Н., доцент ___________________________с.В.Краснов
1. Работа с динамическими структурами данных.
Все переменные, встречающиеся в Паскаль - программе, должны быть описаны. Перед началом выполнения программы каждой переменной для размещения ее значения выделяется место в оперативной памяти компьютера.
Значения переменных в ходе выполнения программы могут меняться, но само количество переменных остается неизменным.
Например, при работе с массивами, отводится достаточно большое место в памяти, даже если реальный его размер невелик, чтобы не вносить изменения в программу относительно размеров массива.
В Паскале имеются средства, позволяющие отводить и освобождать память для размещения информации непосредственно по ходу выполнения программы. Для этого прибегают к построению динамических структур данных.
1.1.Переменные – указатели.
При работе с данными динамической структуры в разделе описаний указывается не сама переменная какого-либо типа, а указатель (ссылка) на нее.
В результате указатель будет обычной переменной, а переменная, на которую он указывает – динамической.
Например:
var.
типизированные указатели.
p4:^ pointer; - не типизированный указатель.
^ - означает переменную-указатель.
р1 – указатель на переменную целого типа.
P2 -- указатель на переменную символьного типа.
р3 – указатель на переменную вещественного типа.
р4 – используется для динамического размещения данных, структура и тип которых меняется в ходе выполнения программы.
1.2.Операции с указателями.
1. var
p:^ integer;
Указатель находится в неопределенном состоянии, после его описания.
n
Процедура new (p) – отводит место в оперативной памяти под хранение
переменной целого типа, и этот адрес вносится в указатель р.
p: = nil;
Указатель на пустой адрес.
dispose(p);
Процедура dispose освобождает память занимаемую динамической переменной и она (память) становится доступна для других динамических переменных.
Пример:
Program din_per;
type:
p=^ integer;
var
a, b: p;
begin
new (a); {Выделение памяти под а}
new (b); {Выделение памяти под b}
a^: =1; {Занесение информации в а}
b^:=2; {Занесение информации в b}
a^: =b^; {Копирование информации}
dispose (a); {Освобождение памяти}
a: =b; {Копирование адреса}
end.
a – обращение к адресу; a^ - обращение к информации.