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

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

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

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

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)

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

Студент гр.

________

__.__.2025

Принял

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

________ Е.Е. Лунева __.__.2025

Томск 2025

Задание

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

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

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

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

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

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

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

2

 

Оглавление

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

2

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

4

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

5

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

11

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

12

3

Введение

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

4

1 ХОД РАБОТЫ

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

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

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

5

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

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

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

6

Очистка списка: полностью очищает список, обнуляя голову и счетчик элементов. (рис.4).

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

Поиск элемента : находит индекс первого вхождения заданного элемента в списке или возвращает -1 если элемент не найден. (рис.5).

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

7

Возвращение элемента по индексу: возвращает значение элемента по указанному индексу в списке. (рис. 6).

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

8

Вставляет все элементы второго списка после указанного индекса первого списка и очищает второй список. (рис. 7).

Рисунок 7 — Объединение

Для возвращению элемента по индексу была составлена блок-схема, которая представлена на рисунке 8.

9

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

10

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