Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практики(Вариант №7) / Практическая работа №3

.pdf
Скачиваний:
0
Добавлен:
23.02.2026
Размер:
428.1 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

СПИСКИ Отчет по практической работе №3 по дисциплине «Структуры данных»

Студент гр.

________

__.__.2025

Принял

Преподаватель кафедры КИБЭВС

________ Д.Р. Уразаев __.__.2025

Томск 2025

Задание

Реализовать динамический список при помощи двух классов. Класс node - отвечает за узел элемента списка, класс List - за работу со списком. Реализовать интерфейсную часть - методы:

инициализация пустого списка - делаем это в конструкторе, если используются классы.

добавление элементов списка в конец bool add (int element)

удаление заданного элемента из списка bool remove_item (int element ), где int element - удаляемый элемент, метод возвращает true если удаление элемента прошло успешно.

Очистка списка -- bool clear(), возвращает true при успешной очистке, false в противоположном случае

поиск элемента списка по образцу

Вариант 7. Реализуемый список должен быть двусвязным. Два упорядоченных динамических списка объединить в один упорядоченный - реализовать в виде метода. Реализовать сортировку элементов списка в виде метода, массив для сортировки не использовать.

2

 

Оглавление

Задание...................................................................................................................

2

Введение.................................................................................................................

4

1 ХОД РАБОТЫ....................................................................................................

5

Заключение...........................................................................................................

11

Приложение А......................................................................................................

12

3

Введение

Целью данного задания является создание простого динамического циклического списока с использованием двух классов. Реализация базовых операций — добавление, удаление, очистка и поиск элементов. Также добавление функции удаления четных и повторяющихся элементов.

4

1 ХОД РАБОТЫ

В основе списка лежит класс Node, который хранит значение элемента и ссылку на следующий узел. Класс MyList управляет списком через два указателя: на голову и на хвост списка (рис. 1).

Рисунок 1 — Создание классов

Добавление элемента: добавляет новый элемент в конец двусвязного списка, сохраняя ссылку на последний элемент через tail (рис. 2).

5

Рисунок 2 — Добавление

Удаление элемента: удаляет первый найденный элемент с заданным значением из двусвязного списка, корректно обновляя указатели head, tail и связи между узлами (рис.3).

Рисунок 3 — Удаление

6

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

Рисунок 4 — Очистка

Поиск элемента: возвращает индекс первого вхождения элемента с заданным значением в списке, считая с нуля (рис.5).

Рисунок 5 — Поиск элемента

7

Сортировка: сортировка списка, путем сортировки обменом (рис. 6).

Рисунок 6 — Сортировка

8

Объединение двух упорядоченных списков в один упорядоченный (рис. 7).

Рисунок 7 — Объединение Для сортировки была составлена блок-схема, которая представлена на

рисунке 8.

9

Рисунок 8 — Блок-схема метода Sort()

10

Соседние файлы в папке Практики(Вариант №7)