Использование динамических структур
Цель: получение знаний и навыков по созданию динамических структур, их использованию, сферам применения.
Вид работы: индивидуальный.
Время выполнения: 2 часа.
Теоретические сведения:
Линейные списки — это данные динамической структуры, которые представляют собой совокупность линейно связанных однородных элементов, и для которых разрешается добавлять элементы между любыми другими, и удалять любой элемент.
Кольцевые списки — это такие же данные, как и линейные списки, имеющие дополнительную связь между последним и первым элементами списка.
Очередь — частный случай линейного односвязного списка, для которого разрешены только два действия: добавление элемента в конец (хвост) очереди и удаление элемента из начала (головы) очереди.
Стек — частный случай линейного односвязного списка, для которого разрешено добавлять или удалять элементы только с одного конца списка, который называется вершиной (головой) стека.
Указатель объявляется с помощью специального символа каре (^), за которым записывается идентификатор типа динамической переменной:
Type имя_типа=^тип;
Var имя переменной=имя типа;
Или
Var имя переменной:^имя типа;
Например:
A,B,C:^Integer;
В этом случае переменные A,B,C являются указателями на переменные типа Integer. Для обращения к значениям этих переменных служат идентификаторы A^,B^,C^, то есть имя переменной и знак каре.
Кроме того, указатель может быть объявлен явно следующим образом:
Var p:Pointer;
Значения указателей можно сравнивать только с помощью проверки на равенство и неравенство. Допустимо также использование оператора присваивания. Для динамических переменных (A^,B^,C^) допустимы все те же операции, что и над обычными переменными данного типа.
Задания к работе:
1) Задан файл целых чисел. Перепишите элементы этого файла в обратном порядке, используя динамическую структуру данных в качестве промежуточного звена.
2) Создайте очередь из n элементов и стек из m элементов. Добавьте элементы очереди в вершину стека.
Контрольные вопросы:
1) В чём заключается особенность объявления данных динамической структуры?
2) Что выполняет операция разыменования?
3) С помощью каких процедур происходит распределение памяти под динамические переменные?
4) Какие состояния может принимать указательная переменная?
5) Каким образом выражаются динамические свойства несвязанных динамических данных?
6) В чём заключаются отличия при обработке стека и очереди?
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.