Salve a tutti, sono uno studente del corso di laurea di ingegneria informatica. Il professore mi ha dato da scrivere questo programma:
Scrivere la funzione C che realizza l'algoritmo di fusione su una lista collegata con puntatori di valori interi. Il prototipo della funzione è il seguente:
void merge( struct list ** ptr_l, int N1 );
dove ptr_l è il doppio puntatore alla lista e N1 è il numero di elementi della semi-lista sinistra (i rimanenti elementi della lista appartengono alla semi-lista destra). Le semi-liste destra e sinistra sono assunte ordinate. La fusione deve produrre la lista finale ordinata globalmente senza ricorrere a strutture ausiliarie (allocazione della memoria). Scrivere anche l'equazione di costo dell'algoritmo discutendo la complessità.
es. lista iniziale {2,3,5,1,4} con N1 = 3 (semi-lista sinistra e destra date dagli elementi {2,3,5} e {1,4}, rispettivamente). La lista finale sarà: {1,2,3,4,5}.
Non so veramente come fare, il problema è che non mi riesce farlo senza strutture ausiliarie e non sono in grado di collegare/scollegare gli elementi.. Potete aiutarmi??
Grazie