Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / z9411_КафкаРС_лр_14.docx
Скачиваний:
37
Добавлен:
18.05.2022
Размер:
112.45 Кб
Скачать

Исходный файл modSp.Cpp

/*Исходный файл modSp.cpp

Реализация набора функций для работы со списком*/

#include<iostream>

#include"modSp.h"

using namespace std;

//Добавление нового элемента в конец списка

void add_spis(int ch, list** beg, list** end)

{

list* nov = new list; //Выделяем память под элемент списка.

nov->data = ch; //Заполняем информационную часть.

nov->link = 0; //В ссылочную - NULL.

if (*beg) //Если список не пуст,

(*end)->link = nov; //добавляем в конец списка.

else *beg = nov; //Если список был пуст.

*end = nov; //Новый элемент - последний.

return;

}

//построение результирующего списка

void obrabotka(list* beg, list** beg1, list** end1)

{

list* beg_save = beg;

telem max = beg->data;

int imax, i = 0;

while (beg)

{

if (beg->data > max)

{

max = beg->data;

imax = i;

}

beg = beg->link;

i++;

}

beg = beg_save;

for (int j = 0; j < i; j++)

{

if (j < imax)

add_spis(0, beg1, end1);

else add_spis(beg->data, beg1, end1);

beg = beg->link;

}

return;

}

//просмотр списка

void view_spis(list* beg)

{

while (beg)

{

cout << beg->data << ' ';

beg = beg->link;

}

return;

}

//инициализация списка

void init_spis(list** beg, list** end)

{

*beg = *end = 0; //исходный список пуст

return;

}

//инициализация списка

void udal_spis(list** beg, list** end)

{

list* tec;

while (*beg)

{

tec = *beg;

*beg = (*beg)->link;

delete tec;

}

*end = 0;

//список пуст

return;

}

Скриншот результатов выполнения программы