У нас есть три двусвязных линейных списка, как над ними выполнить такие операции

У нас есть три двусвязных линейных списка. Как над ними выполнить такие операции:

  • Объединить два (или более) линейных списка в один список.
  • Разбить линейный список на два (или более) списки.
  • Сделать копию линейного списка.
  • Определить количество узлов в списке.
  • Найти в списке узел с заданным значением в некотором поле.
#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;
}

Ответы (0 шт):