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.
0
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ć.