Динамические структуры-паскаль

Содержание

Слайд 2

Переменные - указатели Переменная – указатель хранит адрес переменной. Переменная -указатель

Переменные - указатели

Переменная – указатель хранит адрес переменной.

Переменная -указатель

Обычная -переменная

Имя:Тип;

Имя- имя

переменной-указателя; Тип – тип переменной, на которую может указывать переменная-указатель Имя
Слайд 3

В начале работы программы переменная-указатель «ни на что не указывает». Указатель

В начале работы программы переменная-указатель «ни на что не указывает».
Указатель пустой

– NIL.
P2,P1:^integer;
P3:^real;
…………
P2:=P1;
Если Р указывает на I, то в результате выполнения P^:=5;, значение I будет равно пяти.
Слайд 4

Динамические переменные Динамической переменной называется переменная, память для которой выделяется во

Динамические переменные

Динамической переменной называется переменная, память для которой выделяется во время

работы программы. Выделение памяти для динамической переменной осуществляется вызовом процедуры NEW. У NEW один параметр-указатель на переменную определенного типа, память для которой надо выделить. Пусть Р – указатель на real, то в результате NEW(p), будет создана переменная типа real, и переменная-указатель будет содержать адрес этой переменной.
У динамической переменной нет имени, поэтому обратиться к ней можно только при помощи указателя.
Слайд 5

Пример программы //uses crt; Var p1,p2,p3:^integer; Begin New(p1); New(p2); New(p3); writeln('Введите

Пример программы

//uses crt;
Var
p1,p2,p3:^integer;
Begin
New(p1);
New(p2);
New(p3);
writeln('Введите 2 числа');
Readln(p1^,p2^);
P3^:=p1^+p2^;
writeln('Сумма чисел = ',p3^);
End.

Слайд 6

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

Связанные списки

Указатели и динамические переменные позволяют создавать сложные динамические структуры данных,

такие как связанные списки и деревья.





. . .

Связанные списки

Слайд 7

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

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

– информационная. 2-я – обеспечивает связь со следующим, и возможно, с предыдущим элементом списка.
Список, в котором обеспечивается связь только со следующим элементом, называется односвязным.
Слайд 8

Пример Type P_stud=^student; Student=record Fam:string[20]; Name:string[20]; Group:byte; Address:string[60]; Next:p_stud;{указатель на следующий элемент списка} End; Var Head:p_stud;

Пример

Type
P_stud=^student;
Student=record
Fam:string[20];
Name:string[20];
Group:byte;
Address:string[60];
Next:p_stud;{указатель на следующий элемент списка}
End;
Var
Head:p_stud;

Слайд 9

Добавлять данные можно в начало, в конец или в нужное место

Добавлять данные можно в начало, в конец или в нужное место

списка.

head

NIL

Список пустой:head ни на что не указывает

NIL

Иванов

head

После добавления одного элемента head указывает на этот элемент