Fixed up to 6 (including)
This commit is contained in:
84
task7.h
84
task7.h
@@ -1,4 +1,4 @@
|
||||
#include <iostream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cmath>
|
||||
using namespace std;
|
||||
@@ -13,46 +13,46 @@ namespace task7 {
|
||||
Node* next;
|
||||
};
|
||||
|
||||
Node* newNode(int key); //создает узел
|
||||
Node* rand_list(int size); //создает список
|
||||
void print_list(Node* head); //пишет элементы списка
|
||||
Node* newNode(int key);
|
||||
Node* rand_list(int size);
|
||||
void print_list(Node* head);
|
||||
|
||||
bool is_list_empty(Node* head); //пишет, что список пуст, если подкинуть nullptr
|
||||
void push_back(Node* head, int key); //поместить в конец
|
||||
void push_forward(Node*& head, int key); //поместить в начало
|
||||
void squeeze_in(Node* head, int pos, int key); //"всунуть" после элемента
|
||||
bool is_list_empty(Node* head);
|
||||
void push_back(Node* head, int key);
|
||||
void push_forward(Node*& head, int key);
|
||||
void squeeze_in(Node* head, int pos, int key);
|
||||
void behead(Node*& head);
|
||||
int list_size(Node* head); //узнать размер списка
|
||||
int list_size(Node* head);
|
||||
|
||||
bool equal(Node* head1, Node* head2); //сравнивает списки
|
||||
bool all_in(Node* head1, Node* head2); //проверяет, есть ли все элементы первого списка в другом
|
||||
bool dupes_present(Node* head); //проверка на дубликаты
|
||||
void head_to_end(Node*& head); //перемещает первый элемент в конец
|
||||
void end_to_head(Node*& head); //перемещает последний элемент в начало
|
||||
void merge(Node* head1, Node* head2); //переносит элементы списка 2 в конец списка 1
|
||||
void reversed(Node*& head); //возвращает элементы массива в обрат. порядке
|
||||
bool in_list(Node* head, int key); //ДЛЯ ЗАДАНИЯ ПОД БУКВОЙ З). Определяет, есть ли элемент в списке
|
||||
void remove_dupes(Node*& head); //not implemented
|
||||
bool equal(Node* head1, Node* head2);
|
||||
bool all_in(Node* head1, Node* head2);
|
||||
bool dupes_present(Node* head);
|
||||
void head_to_end(Node*& head);
|
||||
void end_to_head(Node*& head);
|
||||
void merge(Node* head1, Node* head2);
|
||||
void reversed(Node*& head);
|
||||
bool in_list(Node* head, int key);
|
||||
void remove_dupes(Node*& head); // not implemented
|
||||
|
||||
int init()
|
||||
{
|
||||
cout << "TASK #7" << endl;
|
||||
setlocale(LC_ALL, "Russian");
|
||||
|
||||
cout << "В конце задания 6 ничего не предвещало беды\n";
|
||||
cout << "РконÑе Ð·Ð°Ð´Ð°Ð½Ð¸Ñ 6 ниÑего не пÑедвеÑало бедÑ\n";
|
||||
|
||||
int n1; cout << "Введите размер списка 1: "; cin >> n1;
|
||||
int n1; cout << "ÐведиÑе ÑÐ°Ð·Ð¼ÐµÑ ÑпиÑка 1: "; cin >> n1;
|
||||
Node* lst1 = newNode(0);
|
||||
cout << "Введите числа:" << endl;
|
||||
cout << "ÐведиÑе ÑиÑла:" << endl;
|
||||
for (int i = 0; i < n1; i++)
|
||||
{
|
||||
int num; cin >> num;
|
||||
push_back(lst1, num);
|
||||
}
|
||||
|
||||
int n2; cout << "Введите размер списка 2: "; cin >> n2;
|
||||
int n2; cout << "ÐведиÑе ÑÐ°Ð·Ð¼ÐµÑ ÑпиÑка 2: "; cin >> n2;
|
||||
Node* lst2 = newNode(0);
|
||||
cout << "Введите числа:" << endl;
|
||||
cout << "ÐведиÑе ÑиÑла:" << endl;
|
||||
for (int i = 0; i < n2; i++)
|
||||
{
|
||||
int num; cin >> num;
|
||||
@@ -60,61 +60,61 @@ namespace task7 {
|
||||
}
|
||||
behead(lst1);
|
||||
behead(lst2);
|
||||
cout << "\n\nИмеем два списка: \n";
|
||||
cout << "\n\nÐмеем два ÑпиÑка: \n";
|
||||
print_list(lst1);
|
||||
print_list(lst2);
|
||||
cout << "\n\n";
|
||||
|
||||
if (equal(lst1, lst2))
|
||||
{
|
||||
cout << "Списки совпадают";
|
||||
cout << "СпиÑки ÑовпадаÑÑ";
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Списки не равны";
|
||||
cout << "СпиÑки не ÑавнÑ";
|
||||
}
|
||||
cout << "\n\n";
|
||||
|
||||
if (all_in(lst1, lst2))
|
||||
{
|
||||
cout << "Все элементы первого списка есть во втором";
|
||||
cout << "ÐÑе ÑлеменÑÑ Ð¿ÐµÑвого ÑпиÑка еÑÑÑ Ð²Ð¾ вÑоÑом";
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Первый список имеет элементы, которых нет во втором";
|
||||
cout << "ÐеÑвÑй ÑпиÑок Ð¸Ð¼ÐµÐµÑ ÑлеменÑÑ, коÑоÑÑÑ
Ð½ÐµÑ Ð²Ð¾ вÑоÑом";
|
||||
}
|
||||
cout << "\n\n";
|
||||
|
||||
if (dupes_present(lst1))
|
||||
{
|
||||
cout << "В списке есть дубликаты";
|
||||
cout << "Ð ÑпиÑке еÑÑÑ Ð´ÑбликаÑÑ";
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "В списке нет дубликатов";
|
||||
cout << "Ð ÑпиÑке Ð½ÐµÑ Ð´ÑбликаÑов";
|
||||
}
|
||||
cout << "\n\n";
|
||||
print_list(lst1);
|
||||
cout << "Перенесем первый элемент списка 1 в конец : \n";
|
||||
cout << "ÐеÑенеÑем пеÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑпиÑка 1 в ÐºÐ¾Ð½ÐµÑ : \n";
|
||||
head_to_end(lst1);
|
||||
print_list(lst1);
|
||||
|
||||
cout << "\n\n";
|
||||
print_list(lst2);
|
||||
cout << "Перенесем последний элемент списка 2 в начало : \n";
|
||||
cout << "ÐеÑенеÑем поÑледний ÑÐ»ÐµÐ¼ÐµÐ½Ñ ÑпиÑка 2 в наÑало : \n";
|
||||
end_to_head(lst2);
|
||||
print_list(lst2);
|
||||
|
||||
cout << "\n\n";
|
||||
print_list(lst1);
|
||||
print_list(lst2);
|
||||
cout << "Соединим два списка: \n";
|
||||
cout << "Соединим два ÑпиÑка: \n";
|
||||
merge(lst1, lst2);
|
||||
print_list(lst1);
|
||||
cout << "Развернем список: \n";
|
||||
cout << "РазвеÑнем ÑпиÑок: \n";
|
||||
reversed(lst1);
|
||||
print_list(lst1);
|
||||
cout << "Удалим дубликаты из списка: \n";
|
||||
cout << "Удалим дÑбликаÑÑ Ð¸Ð· ÑпиÑка: \n";
|
||||
remove_dupes(lst1);
|
||||
print_list(lst1);
|
||||
|
||||
@@ -204,18 +204,6 @@ namespace task7 {
|
||||
|
||||
void behead(Node*& head)
|
||||
{
|
||||
/*
|
||||
⢿⣿⣿⣿⣭⠹⠛⠛⠛⢿⣿⣿⣿⣿⡿⣿⠷⠶⠿⢻⣿⣛⣦⣙⠻⣿
|
||||
⣿⣿⢿⣿⠏⠀⠀⡀⠀⠈⣿⢛⣽⣜⠯⣽⠀⠀⠀⠀⠙⢿⣷⣻⡀⢿
|
||||
⠐⠛⢿⣾⣖⣤⡀⠀⢀⡰⠿⢷⣶⣿⡇⠻⣖⣒⣒⣶⣿⣿⡟⢙⣶⣮
|
||||
⣤⠀⠀⠛⠻⠗⠿⠿⣯⡆⣿⣛⣿⡿⠿⠮⡶⠼⠟⠙⠊⠁⠀⠸⢣⣿
|
||||
⣿⣷⡀⠀⠀⠀⠀⠠⠭⣍⡉⢩⣥⡤⠥⣤⡶⣒⠀⠀⠀⠀⠀⢰⣿⣿
|
||||
⣿⣿⡽⡄⠀⠀⠀⢿⣿⣆⣿⣧⢡⣾⣿⡇⣾⣿⡇⠀⠀⠀⠀⣿⡇⠃
|
||||
⣿⣿⣷⣻⣆⢄⠀⠈⠉⠉⠛⠛⠘⠛⠛⠛⠙⠛⠁⠀⠀⠀⠀⣿⡇⢸
|
||||
⢞⣿⣿⣷⣝⣷⣝⠦⡀⠀⠀⠀⠀⠀⠀⠀⡀⢀⠀⠀⠀⠀⠀⠛⣿⠈
|
||||
⣦⡑⠛⣟⢿⡿⣿⣷⣝⢧⡀⠀⠀⣶⣸⡇⣿⢸⣧⠀⠀⠀⠀⢸⡿⡆
|
||||
⣿⣿⣷⣮⣭⣍⡛⠻⢿⣷⠿⣶⣶⣬⣬⣁⣉⣀⣀⣁⡤⢴⣺⣾⣽⡇
|
||||
*/
|
||||
Node* _head = head;
|
||||
head=head->next;
|
||||
delete _head;
|
||||
@@ -393,4 +381,4 @@ namespace task7 {
|
||||
}
|
||||
head = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user