Ім'я файлу: Звіт_Лабораторна_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

скачати

© Усі права захищені
написати до нас