- •Теоретические вопросы к экзамену к экзамену по курсу «Программирование и алгоритмизация»
- •А)Основные типы переменных в с. Б)Правила определения переменных и типов. В)Инициализация данных.
- •A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных
- •Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода
- •Оператор цикла for
- •Операторы цикла while и do … while
- •Указатели. Типизированные и нетипизированные.
- •Работа с файлами. Файловая переменная, открытие, закрытие файла.
- •Чтение и запись в файлы. Функция eof()
- •Определение и вызов функций. Фактические и формальные параметры.
- •Определение и вызов функций. Передача массивов и указателей на функции.
- •Бинарный поиск в упорядоченном массиве.
- •Сортировка массива на примере одного из алгоритмов.
- •Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- •Вставка узла
- •Удаление узла
- •Виды линейных списков: стек, очередь, дек.
- •Сущность методологии объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
- •Дружественные функции класса.
- •Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
- •Наследование. Определение базового и производного классов.
- •Полиморфизм. Виртуальные функции.
- •Динамическое распределение памяти под объекты. Операторы new и delete. Динамическое выделение памяти
- •Функции operator new() и operator delete()
- •Шаблоны классов. Шаблоны классов
- •Использование шаблонов
- •Шаблоны функций.
- •Жизненный цикл программного продукта.
- •Основные процессы жизненного цикла.
- •Разновидности процесса разработки по.
- •Стадии разработки по
- •Действия при разработке тз
Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
Связанный список - это линейный набор ссылающихся на себя структур, называемых узлами, и объединенных указателем-связкой. Доступ к связующим узлам производится через связывающий указатель, хранящийся в каждом узле. В отличие от массива, список не имеет фиксированного размера - он может расти или сокращаться по мере необходимости. Эта его особенность становится существенной, если число объектов в списке неизвестно до времени выполнения.
Односвязный список состоит из конкретных узлов, в состав каждого из которых входит значение, хранящееся в узле, например, для списка целых чисел это будет число, а также указатель, содержащий адрес следующего узла списка. В последнем узле списка указатель на следующий узел содержит NULL. Обязательным является указатель на начало списка, хранящий адрес первого узла списка.
Вставка узла
Одной из типичных операций при работе со списком является вставка нового узла в определенное место связанного списка.
Если происходит вставка узла в односвязном списке, нужно выполнить следующие действия:
Необходимо выделить память под новый узел.
Записать в новый узел значение.
Записать в указатель на следующий узел в этом узле адрес узла, который должен располагаться после нового узла.
Заменить в узле, который будет располагаться перед новым узлом, записанный адрес на адрес нового узла.
Если осуществить действия в другом порядке, то мы потеряем адрес узла, который должен располагаться после нового узла. А это означает, что мы не только не найдем этот узел, но и потеряем все узлы, расположенные за ним.
Покажем добавление узла в односвязный список с помощью следующего рисунка. Нумерация действий на рисунке совпадает с приведенной выше нумерацией действий.
Удаление узла
Второй типичной операцией со списками является удаление узла, находящегося в середине списка.
В односвязном списке для удаления узла нужно выполнить следующие действия:
Записать адрес узла, следующего за удаляемым узлом, в указатель на следующий узел в узле, предшествующем удаляемому.
Удалить узел, предназначенный для удаления.
Виды линейных списков: стек, очередь, дек.
Линейные списки – структуры данных, в которых элементы (переменные) следуют друг за другом, и каждому можно поставить в соответствие порядковый номер.
Стек – это линейный список, в котором все операции вставки и удаления( и как правило операции доступа к данным) выполняются только на одном конце списка.
Очередь (или односторонняя очередь) – это линейный список, в котором все операции вставки выполняются на одном из концов списка, а все операции удаления(и как правило операции доступа к данным) – на другом.
Дек (или двусторонняя очередь) – это линейный список, в котором все операции вставки и удаления (и как правило операции доступа к данным) выполняются на обоих концах списка.
Описание структуры на языке C++. Определение переменных структурного типа. Способы доступа к элементам структур.
Описание объединения на языке C++. Определение переменных типа «объединение». Способы доступа к элементам объединений.