#include using namespace std; struct a { char val; bool sorted = false; a* next; }; void print(a* L){//Выводит список a* p = L; cout << "TBOU CIIUCOK: " << endl; while (p) { cout << p->val << " "; p = p->next; } cout << endl; } void longest(a* L, int size){//Ищет наибольшую последовательность элементов и выводит ее длину и сам элемент char t1, t2, symb; int q = 1, most = 0; a* p = L; while (p){ t1 = p->val; p = p->next; t2 = p->val; if(t1 == t2){ q++; } else q = 1; if(q > most){ symb = t1; most = q; } if (p->next == nullptr) break; } cout << "CAMA9I DJIHHA9I JIUHU9I: " << most << " U3 6YKBbI: " << symb << endl; } void delinpos(a* todel)//Удаляет полученный на входе элемент { a* tmp = todel->next; todel->next = tmp->next; delete tmp; } void findsim(a*& L){//Находит одинаковые рядом стоящие элементы и удаляет один из них с помощью фунции delsim a *todel = L; while (todel){ a *tmp = todel->next; if(todel->val==tmp->val) delinpos(todel); else todel = todel->next; if (todel->next == nullptr) break; } } void sortedlist(a*& L, int size){//Сортирует сисок и удаляет одинаковые рядом стоящие элементы с помощью функции findsim a* N = NULL; a *tmp = L; char m; a *most = nullptr; for (int i = 0; ival > m && tmp->sorted == false){ m = tmp->val; most = tmp; } if (tmp->next == nullptr) break; tmp = tmp->next; } a *q = nullptr; q = new a; q->val = most->val; q->next = N; N = q; most->sorted = true; } findsim(N); print(N); } int countsize(a *& L){//Подсчитывает размер полученного списка int size = 0; a *tmp = L; while (tmp){ tmp = tmp->next; size++; } return size; } void create_list(a *& L, int size){//Заполяет список путем последовательного ввода с клавиатуры a *q = nullptr; cout << "BBEDUTE CODEPWUMOE CIIUCKA: "; for (int i = 0; i < size; i++) { q = new a; cin >> q->val; q->next = L; L = q; } } int main(){ a* L = NULL; int size; cout << "BBEDUTE PA3MEP CIIUCKA: "; cin >> size; create_list(L, size); print(L); longest(L, size); findsim(L); print(L); size = countsize(L); cout << endl << "COPTUPYEM..." << endl << endl; sortedlist(L, size); return 0; }