Основы программирования — второй семестр 08-09; Михалкович С.С.; II часть
Лекция 3
Содержание
Указатели
Адрес. Переменная-указатель.
Для чего нужны указатели?
Типизированные и бестиповые указатели.
Нулевой указатель.
Операция разыменования.
Указатели и явное приведение типа. Пример: типы pointer, pinteger и preal. Доступ к памяти, имеющей другое внутреннее представление.
Динамическая память. Явное выделение динамической памяти. Процедуры New и Dispose.
Ошибки при работе с динамической памятью
- Использование неинициализированного указателя
- Висячие указатели
- Утечка памяти
Классы-начало
Переменная типа класс как ссылка. Сравнение с записями.
Вызов конструктора и выделение динамической памяти.
Шаблоны классов.
Решение проблемы освобождения памяти, занимаемой объектами классов: сборка мусора (.NET, Java).
Управляемая динамическая память и ее возврат. Отсутствие утечки памяти.
Динамические структуры данных. Списки
Виды списков. Рисунки.
Односвязные линейные списки
Класс узла списка (шаблонный)
Стандартные операции с односвязными линейными списками
- Вставка элемента в начало
- Удаление элемента из начала
- Вставка после текущего
- Удаление после текущего
- Проход по списку
Двусвязные линейные списки
Стандартные операции с двусвязными линейными списками
- Инициализация
- Добавление в начало, конец
- Удаление из начала, конца
- Вставка элемента перед текущим, после текущего
- Удаление текущего
- Объединение двух списков
Помещение операций по работе со списком внутрь класса