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

СДлб3

.pdf
Скачиваний:
9
Добавлен:
27.11.2022
Размер:
1.01 Mб
Скачать

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

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

Кафедра безопасности информационных систем (БИС)

АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ Отчет по практической работе №3

по дисциплине «Структуры данных»

Студент гр. 731-2

А.С. Батаев

Принял:

преподаватель КИБЭВС Д.Р. Уразаев

Томск 2022

СОДЕРЖАНИЕ

1

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

3

2

Ход работы .............................................................................................................

4

 

2.1

Удаление четных чисел из списка ...............................................................

7

 

2.2

Удаление повторяющихся чисел из списка................................................

9

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

13

2

1 Введение

Данная работа посвящена реализации динамического списка при помощи двух классов. Во время работы будет реализован односвязный список на языке программирования С#

В качестве ТЗ было получено задание:

Реализуемый список должен быть циклическим. Дополнительно реализовать методы: удалить из списка четные элементы. Удалить из списка повторяющиеся элементы.

3

2 Ход работы

Весь код программы представлен в приложении А.

По заданию был реализован класс Node, который отвечает за инициализацию и переопределение списков. Класс Node представлен на Рисунке 2.1.

Рисунок 2.1- Класс Node

Далее по заданию был реализован публичный класс List (Рисунок 2.2).

Рисунок 2.2- Класс List

Далее для работы методов класса были созданы различные переменные

(Рисунок 2.3)

4

Рисунок 2.3- Переменные

Remove - метод для удаления данных. На вход поcтупает элемент,

который требуется найти и удалить. Пока есть элементы для проверки цикл while будет работать, если находится элемент, который требуется удалить, то идѐт проверка является ли этот элемент началом списка. Если элемент является началом списка, то происходит переопределение значения first на след. элемент,

если нет, то текущий элемент перед удалѐнным будет ссылаться на следующий элемент после удалѐнного, если элемент был последним, то конец списка будет обозначен идущим за удалѐнным элементом.

5

Рисунок 2.5- Класс Remove

6

Очистка списка осуществляется обнулением элемента first и last. Когда у списка не остаѐтся обозначения начала и конца, его длина сокращается до 0,

далее сборщик мусора сам удаляет все остальные элементы списка (Рисунок

2.7).

Рисунок 2.7- Clear

Поиск элемента осуществляется по принципу кода для удаления. Список проверяется до конца, если находится элемент, то возвращается значение true,

если к концу списка элемент не находится, то возвращается значение false (Рисунок 2.8).

Рисунок 2.8- Поиск элемента

2.1 Удаление четных чисел из списка

Метод проверяет значение каждого элемента на четность и удаляет в случае когда число без остатка делится на два (Рисунок 2.9).

7

Рисунок 2.9- Метод Delchet

Результат работы программы представлен на рисунке 2.11

Рисунок 2.10-Результат работы программы Блок-схема алгоритма изображена на рисунке 2.11.

8

Рисунок 2.11-Блок схема алгоритма

2.2 Удаление повторяющихся чисел из списка

Метод проверяет каждое число с каждым и если числа повторяются удаляются оба числа на рисунке (Рисунок 2.12).

9

Рисунок 2.12-Метод Delclon

Результат работы программы представлен на рисунке 2.13

Рисунок 2.13-Результат работы программы

10

Соседние файлы в предмете Структуры данных