Скачиваний:
14
Добавлен:
01.06.2020
Размер:
437.03 Кб
Скачать

ГУО «БГУИР»

Факультет радиотехники и электроники

Кафедра микро и наноэлектроники

Отчет по

Лабораторной работе №2

Динамическая структура ОЧЕРЕДЬ

Подготовил: Студент гр.943201 Королюк Н.В

Проверила:

Семижон Е.А.

Минск, 2020

Цель: изучить возможности работы со списками, организованными в виде очереди.

Вариант №.11 Код:

#include <iostream>

#include <conio.h>

#include <stdio.h>

using namespace std;

struct Spis {

double info;

Spis* next, * prev;

} *b, * e, * t;

void Create(Spis** b, Spis** e, int in) {

t = new Spis;

t->info = in;

t->prev = t->next = NULL;

*b = *e = t;

}

void View(int kod, Spis* t) {

while (t != NULL) {

cout << t->info << endl;

if (kod == 0) {

t = t->next;

}

else {

t = t->prev;

}

}

}

void Add(int kod, Spis** b, Spis** e, int in) {

t = new Spis;

t->info = in;

if (kod == 0) {

t->prev = NULL;

t->next = *b;

(*b)->prev = t;

(*b) = t;

}

else {

t->next = NULL;

t->prev = *e;

(*e)->next = t;

*e = t;

}

}

void Del_All(Spis** p) {

Spis* t;

while (*p != NULL) {

t = *p;

*p = (*p)->next;

delete t;

}

}

void Zadanie(int kod, Spis* p, Spis* k) {

int count = 0;

double sum = 0;

Spis* t = p;

for (; t != NULL; t = t->next) {

count++;

sum += t->info;

}

sum = sum / count;

//cout << endl << count << endl << sum;

if (kod == 0) {

t = b;

t->info = sum;

}

else

{

t = e;

t->info = sum;

}

}

void main()

{

int in, kod, nom, nom2;

while (true) {

cout << "\n\t Create-1\n\t Add-2\n\t View-3\n\t Del-4\n\t Zad-5\n\t EXIT-0 : ";

cin >> kod;

switch (kod) {

case 1:

if (b != NULL) {

cout << " --Chtoto est'-- " << endl;

break;

}

cout << "Begin info = ";

cin >> in;

Create(&b, &e, in);

cout << "Create Begin = " << b->info << endl;

break;

case 2:

cout << " Info = ";

cin >> in;

cout << "\n\t Add begin-0\n\t Add end-1 : ";

cin >> nom;

Add(nom, &b, &e, in);

if (nom == 0) { t = b; }

else { t = e; }

break;

case 3:

if (!b) {

cout << "----Stack pust----" << endl;

break;

}

cout << " Begin-0\n End-1 : ";

cin >> nom;

if (nom == 0) {

t = b;

cout << "--Begin--" << endl;

}

else {

t = e;

cout << "--End--" << endl;

}

View(nom, t);

break;

case 4:

Del_All(&b);

cout << "---Udaleno---" << endl;

break;

case 5:

cout << " Begin-0\n End-1 : ";

cin >> nom2;

if (nom2 == 0) {

t = b;

}

else {

t = e;

}

Zadanie(nom2, b, b);

break;

case 0:

if (b != NULL)

Del_All(&b);

return;

break;

}

}

}

Соседние файлы в папке 1курс,2семестр лабы для зачета