Programma C aiuto!

di il
3 risposte

Programma C aiuto!

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

3 Risposte

  • Re: Programma C aiuto!

    Inizia con il disegnare su carta le due liste, quindi, sempre su carta, prova ad immaginare un algoritmo, e postalo
  • Re: Programma C aiuto!

    Grazie della risposta.. ma non so come si fa a scollegare e poi ricollegare un elemento..
    soprattutto senza allocare memoria..
    un'idea ce la ho per l'algoritmo..
  • Re: Programma C aiuto!

    Puntatori li hai visti / studiati?

    Inviato dal mio LG-E440 utilizzando Tapatalk
Devi accedere o registrarti per scrivere nel forum
3 risposte