Предмет: Информатика, автор: bagirovasofia200220

Объединить два упорядоченных по возрастанию списка в один, упорядоченный по неубыванию C++
ПОМОГИТЕ СРОЧНО ПОЖАЛУЙСТА!!!!
ДАМ 35 БАЛЛОВ!!!!​

Ответы

Автор ответа: STGLN
1

#include <iostream>

#include <list>

using namespace std;

void solve(){

   int n, m;

   list<int> u, v, a;

   cout << "Size of the first list: \n";

   cin >> n;

   cout << "Elements of the first list: \n";

   for(int i = 0; i < n; i++){

       int x;

       cin >> x;

       u.push_back(x);

   }

   cout << "Size of the second list: \n";

   cin >> m;

   cout << "Elements of the second list: \n";

   for(int i = 0; i < m; i++){

       int x;

       cin >> x;

       v.push_back(x);

   }

   auto itU = u.begin(), itV = v.begin();

   while(itU != u.end() && itV != v.end()){

       if(*itU < *itV){

           a.push_back(*itU);

           itU++;

       }

       else{

           a.push_back(*itV);

           itV++;

       }

   }

   while(itU != u.end()){

       a.push_back(*itU);

       itU++;

   }

   while(itV != v.end()){

       a.push_back(*itV);

       itV++;

   }

   auto itA = a.begin();

   cout << "Result list: \n";

   while(itA != a.end()){

       cout << *itA << " ";

       itA++;

   }

}

int main(){

   solve();

}


bagirovasofia200220: А если нужно сделать через динамическую структуру, то как?
STGLN: list - односвязный список - это и есть динамическая структура, поэтому также

Если ты имеешь виду про реализацию списка, то есть написать собственный класс, то просто реализовать свой класс, через указатели, и заменить list на название класса, который ты реализуешь
Похожие вопросы