Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja scalająca trzy listy C++

Ostatnio zmodyfikowano 2019-08-14 19:37
Autor Wiadomość
bombix
Temat założony przez niniejszego użytkownika
Funkcja scalająca trzy listy C++
» 2019-08-14 18:44:09
Cześć, w ramach ćwiczeń z ASD trafiłem na takie zadanie:

Dane są trzy posortowane listy zbudowane z elementów struct node { int val; node* next;}. Proszę zaimplementować funkcję node* merge3(node* l[3]); scalającą trzy listy i zwracającą wskaźnik do powstałej listy.

Ma ktoś pomysł jak to zrobić?
P-175014
pekfos
» 2019-08-14 18:59:49
Listy są posortowane, powiedzmy rosnąco, więc pierwszy element listy jest najmniejszy. Pierwszy element docelowej listy, to najmniejszy element z pierwszych elementów tych 3 list. Funkcja dla 2 list jest trywialna w implementacji, potem wystarczy jej użyć 2 razy by scalić 3 listy.
P-175015
bombix
Temat założony przez niniejszego użytkownika
» 2019-08-14 19:16:19
A jakbym to zrobił od razu dla trzech list? byłoby więcej warunków, ale zawsze funkcja byłaby wywołana tylko raz.
P-175016
pekfos
» 2019-08-14 19:37:58
To że zadanie mówi o napisaniu funkcji nie znaczy, że możesz napisać tylko tą jedną funkcję. Algorytm jest identyczny dla 2 i N list, ale dla dwóch logika jest prostsza. Jak chcesz od razu robić dla 3, to równie dobrze możesz robić dla dowolnej liczby list.
P-175017
« 1 »
  Strona 1 z 1