
- •Динамические структуры данных Классификация структур данных
- •Понятие о динамической памяти
- •Адреса и указатели
- •Описание и состояния указателей
- •Работа с указателями в программе
- •Объявление указателя
- •Выделение памяти
- •Работа с информацией (разыменование)
- •Работа с адресом
- •Освобождение памяти
- •Особенности динамических данных
- •Связанные динамические структуры
- •Организация взаимосвязей в связанных динамических данных
- •Основные типы связанных динамических структур
- •Работа с очередью
- •Работа со стеком
- •Создание стека
- •Добавление элемента
- •Удаление элемента стека
Работа со стеком
Для работы со стеком необходимо иметь только один указатель на вершину стека (возьмем идентификатор Тор) и один временный указатель (возьмем идентификатор Р), который используется для выделения и освобождения памяти для элементов стека.
Создание стека
1. Исходное состояние:
-
Тор
Р
nil
?
Top := nil;
2. Выделение памяти под первый элемент стека и внесение в него информации.
-
Тор
Р
nil
New(P);
5
P^.Inf := 5;
nil
P^.Link := nil;
3. Установка вершины стека Тор на созданный элемент:
-
Тор
Р
Top := P;
5
nil
Добавление элемента
1. Исходное состояние:
-
Р
?
?
Тор
3
1
5
nil
2. Выделение памяти под новый элемент стека
-
Р
?
New(p);
?
Тор
3
1
5
nil
3. Задание значения информационному полю нового элемента стека и установкая связи между ним и старой вершиной стека, адрес которой находится в Тор.
-
Р
10
P^.Inf := 10;
Тор
P^.Link := Top;
3
1
5
nil
4. Перемещение вершины стека Тор на новый элемент
-
Р
10
Тор := Р;
Тор
3
1
5
nil