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