У нас есть три двусвязных линейных списка, как над ними выполнить такие операции
У нас есть три двусвязных линейных списка. Как над ними выполнить такие операции:
- Объединить два (или более) линейных списка в один список.
- Разбить линейный список на два (или более) списки.
- Сделать копию линейного списка.
- Определить количество узлов в списке.
- Найти в списке узел с заданным значением в некотором поле.
#include <iostream>
#include <cstring>
#include <list>
using namespace std;
struct Travelers
{
int ticket_code;
char lastname[20];
int numberofthings;
int luggage_weight;
};
struct Date {
int day;
int month;
int year;
};
void print2(list<Travelers> List)
{
for (list<Travelers>::iterator it = List.begin(); it != List.
end(); it++) {
cout << "ticket_code: "<<it->ticket_code<< "\n";
cout << "lastname: " << it->lastname<< "\n";
cout << "numberofthings: "<<it->numberofthings<< "\n";
cout << "luggage_weight: " << it->luggage_weight<< "\n";
cout << endl;
}
cout << endl;
}
void print1(list<Date> List)
{
for (list<Date>::iterator it = List.begin(); it != List.
end(); it++) {
cout << "day: " << it->day << "\n";
cout << "month: " << it->month << "\n";
cout << "year: " << it->year << "\n";
cout << endl;
}
cout << endl;
}
int main()
{
Travelers a1 = { 34,"Petro",5,4 };
Travelers a2 = { 24,"Petro",5,4 };
Travelers a3 = { 14,"Petro",5,4 };
Travelers a4 = { 24,"Petro",5,4 };
Travelers a5 = { 34,"Petro",5,4 };
Travelers a6 = { 44,"Petro",5,4 };
list<Travelers> travelers;
travelers.push_front(a1);
travelers.push_front(a2);
travelers.push_front(a3);
travelers.push_front(a4);
travelers.push_front(a5);
travelers.push_front(a6);
print2(travelers);
Travelers a7 = { 44,"Petro",5,4 };
travelers.push_back(a7);
print2(travelers);
travelers.pop_back();
print2(travelers);
int k;
k=travelers.size();
cout << k<<endl;
Date b1 = { 23,02,2021};
Date b2 = { 24,05,2021};
Date b3 = { 14,06,2021};
list<Date> date;
date.push_front(b1);
date.push_front(b2);
date.push_front(b3);
print1(date);
date.merge(travelers);
return 0;
}