Отчет к ПР6
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Кафедра безопасности информационных систем
ОТЧЁТ
по практической работе № 6 на тему: «Разработка программ моделирования работы стека и очереди»
по дисциплине «Алгоритмы и структуры данных»
Выполнил: студент группы ИСТ-114, Медведева С.Г.,
«26» октября 2022 г. ___________/Медведева С.Г.
Принял: к.ф.-м.н., доцент, И.А. Моисеев
«26» октября 2022 г. ___________/ И.А. Моисеев /
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