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

Отчет к ПР6

.docx
Скачиваний:
17
Добавлен:
24.01.2023
Размер:
84.83 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Кафедра безопасности информационных систем

ОТЧЁТ

по практической работе № 6 на тему: «Разработка программ моделирования работы стека и очереди»

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

Выполнил: студент группы ИСТ-114, Медведева С.Г.,

«26» октября 2022 г. ___________/Медведева С.Г.

Принял: к.ф.-м.н., доцент, И.А. Моисеев

«26» октября 2022 г. ___________/ И.А. Моисеев /

1 Основная часть

    1. Цель работы

Изучить алгоритмы работы стека и очереди.

    1. Результаты выполнения работы

#include <iostream> #include <string> using namespace std; struct stack { string str; stack* Last{}; }; void pushSt(stack ** top, string string1){ auto * newS = new stack(); newS->str = string1; newS->Last = nullptr; if (*top == nullptr){ *top = newS; } else{ newS ->Last = *top; *top = newS; } } void printSt(stack ** top){ auto * i = new stack(); i = *top; while (i != nullptr){ cout << i->str << " "; i = i ->Last; } } struct queue{ int comand; queue* next; // int count; }; void pushQ (queue ** top, int com){ auto *newQ = new queue(); newQ ->comand = com; newQ->next = nullptr; //newQ->count = 1; if (*top == nullptr){ *top = newQ; } else{ auto i = *top; while (i->next != nullptr){ i = i->next; } i->next = newQ; // i = *top; i->count = ++ i->count; } } void printQ (queue ** top){ auto i = *top; // cout << i->count << endl; while (i!= nullptr){ cout << i->comand << " "; i = i->next; } } int main() { auto ** top = new stack*(); *top = nullptr; for (int i{}; i < 8; i++){ string string1; cin >> string1; pushSt(top,string1); } printSt(top); auto ** topQ = new queue*(); *topQ = nullptr; auto kolvoCom {1}; do { cout << endl; if (kolvoCom < 11) { cout << " Vizov comandi " << kolvoCom; pushQ(topQ, kolvoCom); kolvoCom++; } auto topNQ = *topQ; if ((kolvoCom-1)>4){ *topQ = topNQ->next; cout << "\t Comanda " <<topNQ->comand << " finished"; delete(topNQ); } } while (*topQ!= nullptr); cout << endl; printQ(topQ); return 0; }

Результаты выполнения:

Выводы:

Были изучены алгоритмы работы стека и очереди.

САНКТ-ПЕТЕРБУГР

2022

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