Ім'я файлу: Звіт_Лабораторна_8_Левковець_Д_О.docx Розширення: docx Розмір: 105кб. Дата: 14.11.2021 скачати Пов'язані файли: Звіт_Лабораторна_9_Левеовець_Д_О.docx Звіт_Лабораторна_7_Левковець_Д_О.docx Національний університет Біоресурсів та природокористування Факультету інформаційних технологій Лабораторна робота №8 Студента групи ІПЗ-21011бск Виконав: Левковець Д.О. Дата виконання: 06.11.21 Перевірив: Міловідов Ю.О. Звіт По лабораторній роботі №8 Варіант -10 Тема: ДИНАМІЧНІ СТРУКТУРИ ДАНИХ СТРУКТУРИ ДАНИХ ТИПУ СТЕК І ЧЕРГА Мета: вивчити поняття, оголошення, особливості доступу до даних і роботи з пам'яттю в стеках і чергах, навчитися вирішувати завдання з використанням стеків і черг на мові C++. Завдання: Створить власний стек та чергу та заповніть їх будь якими записами відповідно варіанту (Див. табл 8.1) і виведіть на екран, лістинг програми додайте до звіту. Виконання завдання. #include #include #include using namespace std; struct Node { string flight; int number = 0; Node* p = NULL; }; void push(Node** top, string flight, int number); void pop(Node** top); Node* add(Node** top, int d, string flight, int number); Node* del(Node** top); int main() { setlocale(0, ""); Node* top; top = NULL; int i = 0; string flishts[10] = { "Київ-Париж","Одеса-Берлiн","Львiв-Скоп'є","Харкiв-Лондон","Київ-Вашингтон","Черкаси-Варшава","Суми-Оттава","Полтава-Мехiко","Запорiжжя-Амстердам","Вiнниця-Мiнськ" }; int numbers[10] = { 136, 112, 145, 100, 101, 89, 99, 111, 95, 125 }; cout << "\t\t==== Представлення рейсiв та кiлькiсть пасажирiв рейсу в Аеропортi ====" << endl; cout << "\t\t========================================================================\n\n"; cout << "________________________Стек________________________\n\n"; cout << "Лiтак почав готуватися на рейс, \n" << endl; for (i = 0; i < 10; i++) { cout << flishts[i] << " i туди зайшло пасажирiв " << numbers[i] << endl; push(&top, flishts[i], numbers[i]); } cout << "\n\n"; Node* pv = top; cout << "\nЛiтак прибув в кiнцевий пункт рейсу, \n" << endl; while (top) { cout << top->flight << ", та звiдти вийшло пасажирiв: " << top->number << endl; pop(&top); } cout << "Лiтак пустий"; cout << "\n\n________________________Черга________________________\n\n"; Node * pend = NULL; Node * pbeg = add(&pend, 1, flishts[0], numbers[0]); cout << "Прибув лiтак на рейс " << pbeg->flight << " i увiйшло пасажирiв " << pbeg->number << endl; for (int i = 1; i < 10; i++) { cout << "Прибув лiтак на рейс " << flishts[i] << " i увiйшло пасажирiв " << numbers[i]< add(&pend, i, flishts[i], numbers[i]); } cout << endl << "Рейсiв було з пасажирами:" << endl; Node* pt = pbeg; while (pt) { cout << pt->flight <<" "< number<< endl; pt = pt->p; } cout << "\n\n"; cout << "Вирушили на свiй рейс 3 лiтаки: " << endl; for (i = 0; i < 3; i++) { cout << "Чергу залишили рейси: " << pbeg->flight << " " << pbeg->number << endl; pbeg = pbeg->p; } cout << "\n\n"; cout << "Залишилися рейси в черзi:" << endl; pt = pbeg; while (pt) { cout << pt->flight << " " << pt->number << endl; pt = pt->p; } return 0; } void push(Node** top, string flight, int number) { Node* pv = new Node; pv->flight = flight; pv->number = number; pv->p = *top; *top = pv; } void pop(Node** top) { Node* pv = *top; *top = (*top)->p; delete pv; } Node* add(Node** pend, int d, string flight, int number) { Node* pt = new Node; pt->flight = flight; pt->number = number; pt->p = NULL; if (*pend) (*pend)->p = pt; *pend = pt; return pt; } Node* del(Node** pbeg) { Node* temp = *pbeg; Node* pt = *pbeg; *pbeg = (*pbeg)->p; delete pt; return temp; } Запуск програми. Київ - 2021 |