Jak scalić cztery listy dwukierunkowe w jedną z uwzględnieniem kolejności?

0

Witam, mam problem z połączeniem czterech list dwukierunkowych w jedną. Mam w każdej zapisany czas odczytu jako tablicę char (data, godzina) i muszę brać z czterech list po jednym elemencie, ustawić w odpowiedniej kolejności (rosnąco), potem wziąć drugą czwórkę elementów itd. aż do utworzenia listy dwukierunkowej.

2

Umiesz scalić 2 listy w jedną?

Umiesz dziel i rządź? Scalasz 1 i 2, oraz 3 i 4, a następnie scalasz wyniki.

0

Lista nowa1;
 
while (!lista1.empty() || !lista2.empty())
{
  if (lista1.empty())
  {
    nowa1.pushBack(lista2.popFront());
    continue;
  }
 
  if (lista2.empty())
  {
    nowa1.pushBack(lista1.popFront());
    continue;
  }
 
  if(strcmp(lista1.front(), lista2.front()) > 0)
    nowa1.pushBack(lista2.popFront());
  else
    nowa1.pushBack(lista1.popFront());
}

Tak samo z listami 3 i 4. A potem z nowa1 i nowa2
Michał

1

bez kodu to ci powiem tylko tyle:
std::merge lub std::merge.

przegapiłem, że to ma być C :/
Ale tam jest kod (Possible implementation), na którym możesz się wzorować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1