Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Программирование – 1 курс осень 2021 – 9 занятие

F21d69109b1c03921abf7d12f0fb6654?s=47 ТиМПИ
November 19, 2021

Программирование – 1 курс осень 2021 – 9 занятие

F21d69109b1c03921abf7d12f0fb6654?s=128

ТиМПИ

November 19, 2021
Tweet

Transcript

  1. 19 ноября 2021 fvb@dscs.pro Федор Витальевич Бушмелев Структуры на указателях

  2. 2/25 2/25 Указатели и динамическая память Где-то в куче

  3. 3/25 3/25 Указатели и динамическая память Где-то в куче

  4. 4/25 4/25 Проблемы при работе с массивами Всё также где-то

    в куче Вопросы: 1) Как удалить элемент из массива? 2) Как добавить старый элемент в массив? 3) Какие проблемы это за собой несет? 4) Что с этим можно сделать?
  5. 5/25 5/25 Стандартная библиотека шаблонов (STL)

  6. 6/25 6/25 Контейнеры STL

  7. 7/25 7/25 Односвязный список

  8. 8/25 8/25 Добавление и удаление узлов списка

  9. 9/25 9/25 Вопрос 1 Сравните динамические массивы и списки, какие

    плюсы/минусы каждого Вы можете назвать?
  10. 10/25 10/25 Двусвязный список

  11. 11/25 11/25 Вопрос 2: выбирайте бойца Class VS Struct

  12. 12/25 12/25 Вопрос 2: выбирайте бойца Class VS Struct Особой

    разницы нет, только в спецификации видимости: class – всегда по умолчанию private, а struct – public.
  13. 13/25 13/25 Вспоминаем структуры

  14. 14/25 14/25 Поля и методы

  15. 15/25 15/25 Конструкторы 1/2

  16. 16/25 16/25 Конструкторы 2/2

  17. 17/25 17/25 Деструкторы У деструктора не может быть аргументов!

  18. 18/25 18/25 Реализация односвязного списка Что требуется реализовать: Структура узла

    списка: • Значение, которое будет задавать пользователь. • Указатель на следующий элемент (по умолчанию nullptr). • Конструктор. Структура списка: • Указатели на первый/последний узел. • Конструктор. • Функция проверки наличия узлов в списке. • Функция добавления элемента в конец списка. • Функция печати всего списка. • Функция поиска узла в списке по заданному значению. • Функция удаления первого/последнего узлов. • Функция удаления узла по заданному значению.
  19. 19/25 19/25 Узел списка

  20. 20/25 20/25 Структура списка

  21. 21/25 21/25 Проверка на пустоту, печать и поиск элемента

  22. 22/25 22/25 Добавление/удаление элементов

  23. 23/25 23/25 Удаление по значению

  24. 24/25 24/25 Практические задания (до 26.11.2021) 1. Самостоятельно реализуйте структуру

    и функционал односвязного списка. 2. Напишите функцию, которая позволяет изменить все элементы списка следующим образом: если значение data – четное, то разделить на 2 (2*х); если нечетное, то умножить на 3 и вычесть 1 (3*х-1). 3. Напишите функцию по изменению порядка элементов в односвязном списке на обратный. 4. Напишите функцию, которая проверяет, можно ли удалить из списка каких-нибудь два элемента так, чтобы новый список оказался упорядоченным. 5. Дополните функционал реализованного односвязного списка до стека. 6. Через стек реализуйте перевод (простого) вводимого математического выражения в ОПЗ (обратную польскую запись), выведите ОПЗ и вычислите значение выражения. 7. Дополните реализованную структуру односвязного списка до двусвязного. 8. Определение, является ли двусвязный список симметричным.
  25. 19 ноября 2021 fvb@dscs.pro Федор Витальевич Бушмелев Структуры на указателях