
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра безопасности информационных систем (БИС)
СПИСКИ Отчет по практической работе №3
по дисциплине «Структуры данных»
Студент гр. 733-1
_______ Сметанников Д.Е
_______
Принял:
преподаватель КИБЭВС
_______ Д.Р. Уразаев
_______
Томск 2024
Задание
Реализовать динамический список при помощи двух классов. Класс node - отвечает за узел элемента списка, класс List - за работу со списком. Реализовать интерфейсную часть - методы:
• инициализация пустого списка - делаем это в конструкторе, если используются классы.
•добавление элементов списка в конец bool add (int element)
•удаление заданного элемента из списка bool remove_item (int element ), где int element - удаляемый элемент, метод возвращает true если удаление элемента прошло успешно.
•Очистка списка -- bool clear(), возвращает true при успешной очистке, false в противоположном случае
•поиск элемента списка по образцу
Вариант 3. Реализуемый список должен быть циклическим. Дополнительно реализовать методы: удалить из списка четные элементы. Удалить из списка повторяющиеся элементы.
|
|
Содержание |
|
Задание.................................................................................................................. |
.2 |
1 |
Введение................................................................................................................ |
.4 |
2 |
Ход работы............................................................................................................. |
5 |
|
Заключение........................................................................................................... |
13 |
|
Приложение А...................................................................................................... |
14 |
1Введение
Целью данного задания является создание простого динамического циклического списока с использованием двух классов. Реализация базовых операций — добавление, удаление, очистка и поиск элементов. Также добавление функции удаления четных и повторяющихся элементов.

2Ход работы
Воснове списка лежит класс Node, который хранит значение элемента и ссылку на следующий узел. Класс MyList управляет списком через два указателя: на голову и на хвост списка. (рис. 1)
Рисунок 1 — Создание классов
Добавление элемента: Новый элемент добавляется в конец списка. Если список пустой, новый элемент становится и головой, и хвостом, а его ссылка указывает на сам себя. В противном случае обновляется указатель хвоста (рис. 2)

Рисунок 2 - Добавление
Удаление элемента: Программа проходит по списку и удаляет первый найденный элемент с указанным значением. Если элемент — голова списка, список корректно обновляется, чтобы хвостовой элемент продолжал ссылаться на новую голову (рис.3)

Рисунок 3 — Удаление
Очистка списка: Полное удаление всех элементов — указатели на голову и хвост обнуляются (рис. 4)

Рисунок 4 — Очистка списка
Поиск элемента: Программа циклично проходит по списку и возвращает результат, если находит элемент (рис. 5)
Рисунок 5 — Поиск
Удаление четных элементов: Список проверяется на наличие четных значений, которые удаляются, с корректировкой указателей (рис. 6)

Рисунок 6 — Удаление четного элемента
Удаление дубликатов: Программа ищет и удаляет повторяющиеся элементы, обновляя ссылки внутри списка (рис. 7)

Рисунок 7 — Удаление одинаковых элементов
Вывод элементов: Проходит по всем узлам, начиная с головы, и выводит значения элементов (рис. 8)