Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_ответы.docx
Скачиваний:
8
Добавлен:
22.09.2019
Размер:
138.16 Кб
Скачать

Нулевой указатель

Нулевой указатель − это указатель, хранящий специальное значение, используемое для того, чтобы показать, что данная переменная-указатель не ссылается (не указывает) ни на какой объект. В различных языках программирования представлен различными константами.

18. Статические и динамические переменные. Динамические структуры данных.

Адрес поименованной ячейки памяти также может определяться как на этапе компиляции, так и во время выполнения программы. По времени создания переменные бывают статическими и динамическими. Первые создаются в момент запуска программы или подпрограммы, а вторые создаются в процессе выполнения программы.

Динамическая адресация нужна только тогда, когда количество поступающих на хранение данных заранее точно не известно. Такие данные размещают в специальных динамических структурах, тип которой выбирается в соответствии со спецификой задачи и с возможностями выбранной системы программирования. Это может быть стек, куча, очередь и т. п.

Динами́ческая переме́нная — переменная в программе, место в оперативной памяти под которую выделяется во время выполнения программы. По сути, она является даже не переменной, а участком памяти, выделенным системой программе для конкретных целей. Динамическая переменная — один из классов памяти переменной.

Так как динамическая переменная создаётся во время выполнения программы, у неё нет собственного идентификатора. Работа с динамической переменной ведётся косвенно, через указатель. Создание такой переменной заключается в выделении участка памяти с помощью специальной функции. Эта функция возвращает адрес в памяти, который назначается указателю. Процесс доступа к памяти через указатель называется разыменованием. После окончания работы с динамической переменной выделенную под неё память необходимо освободить — для этого тоже есть специальная функция.

19. Линейные списки. Основные операции над линейными списками.

Линейный список – это множество, состоящее из n≥0 элементов, которые обозначаются x[i], структурные свойства которого определяются след свойствами:

  1. Если n>0 то x[i] – первый узел, x[n] – последний

  2. Для некоторого 1<k<n справедлива запись x[k-1]<x[k]<x[k+1]

Линейный список является структурой данных, в произвольно выбранное место которого могут включаться данные, а также изыматься оттуда. Для формирования списка и работы с ним необходимо иметь пять переменных типа указатель, первая из которых определяет начало списка, вторая - конец списка, остальные - вспомогательные.

Основные отличия линейного списка от стека и очереди следующие:

-для чтения доступна любая компонента списка; -новые компоненты можно добавлять в любое место списка; -при чтении компонента не удаляется из списка.

Основные операции над линейными списками:

  1. Получить доступ к узлу списка с номером k

  2. Включить новый узел перед узлом с номером k

  3. Исключить узел с номером k

  4. Объединить 2 или более узлов в 1

  5. Разбить линейный список на 2 или более

  6. Сделать копию линейного списка

  7. Определить количество узлов в списке

  8. Выполнить сортировку узлов списка

  9. Найти в списке узел с заданным значением некоторого поля