Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы - 2 сем - Калмычков / лаба 4 - 2 сем ПРОГРАММИРОВАНИЕ.docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
240.85 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра систем автоматизированного проектирования

отчет

по лабораторной работе №4

по дисциплине «Программирование»

Тема: «Сложно-структурированные списки:

иерархические списки. Операции над иерархическими списками»

Студентка гр. 3352

Преподаватель

Санкт-Петербург

2024

  1. Исходная формулировка

Сформировать список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2

  1. Формальная постановка задачи

Дана константа N и два входных файла, из которых считывается информация в два иерархических списка L1 и L2 соответственно. Каждый элемент вертикального списка - это горизонтальный список, формирующийся из элементов, представляющих собой массивы символов длиной N.

Сравнение элементов двух иерархических списка происходит следующим образом: Первый элемент списка L1 сравнивается со всеми элементами списка L2, если находится одинаковый элемент, сравнение прерывается. Если элемент списка L1 ни разу не совпал с элементами списка L2, то этот элемент заносится в список L3. Далее сравниваем следующий (второй) элемент списка L1 с элементами L2. Если элемент подходит (то есть не совпал с элементами списка L2), то мы проверяем, есть ли такой элемент в списке L3. Если нет - добавляем. Список L3 формируется до тех пор, пока не закончится список L1.

  1. Контрольный пример

L1

Hello world 1

Hello world 4

?!.!?.?.!.???????

Today is 11th April

Today is 12th April

Nmnmb

Nmnmb

Hello world

?!.!?.?.!.???????

?!.!?.?.!.???????

Today is 13th April

L2

Hello world 1

Hello world 2

Hello world 3

?!.!?.?.!.???????

Today is 11th April

Today is 13th April

L3

Hello world 4

Today is 12th April

Nmnmb

Hello world

  1. Пользовательские типы

Struct StrL

Поля структуры

Тип

Назначение

massiv

char

Массив символов

len

int

Длина массива

Struct ListNodeH

Поля структуры

Тип

Назначение

podstroka

StrL

Подстрока

*next

ListNodeH

Указатель на следующий эдемент горизонтального списка

Struct ListNodeV

Поля структуры

Тип

Назначение

f_H

Formular

Подстрока

*next

ListNodeH

Указатель на следующий эдемент горизонтального списка

ReadV

bool

Считывание горизонтального списка

Print1

void

Вывод горизонтального списка

Struct FormularH

Поля структуры

Тип

Назначение

*head

ListNodeH

Указатель на головной элемент

*cur

ListNodeH

Указатель на текущий элемент

*last

ListNodeH

Указатель на последний элемент

*prev

ListNodeH

Указатель на предыдущий элемент

count

int

Количество элементов в горизонтальном списке

Struct FormularV

Поля структуры

Тип

Назначение

*head

ListNodeV

Указатель на головной элемент

*cur

ListNodeV

Указатель на текущий элемент

*last

ListNodeV

Указатель на последний элемент

*prev

ListNodeV

Указатель на предыдущий элемент