Salve ragazzi. Ho tra le mani la realizzazione di un programmino in C che mi sta dando non pochi grattacapi e mi chiedevo se voi mi poteste dare una mano a venirne a capo. Praticamente devo scrivere la funzione C che riceve in ingresso una lista collegata con puntatori L di valori di tipo int, e
restituisce tra i parametri formali un array V ottenuto nel modo seguente:
• Inizialmente, la funzione rimuove dalla lista L gli elementi la cui posizione corrisponde ad un numero della successione di Fibonacci (ipotizzare che il primo elemento della lista abbia posizione 1 e che i primi due valori della successione di Fibonacci siano F0=1, F1=2, con l’elemento generico della successione dato da Fn=Fn-1+Fn-2);
• Gli elementi rimossi da L sono inseriti nell’array V in modo che l’ultimo elemento rimosso da L sia l’elemento in testa di V (l’array V deve essere allocato internamente alla funzione. Come dimensione può essere usata la lunghezza della lista L).
Ogni elemento della lista L, ha la forma seguente:
struct list {
int value;
int pos; // posizione occupata inizialmente nella lista struct list * next_ptr;
};
dove la posizione occupata dall’elemento nella lista non cambia nel corso della esecuzione.
Grazie anticipatamente per l’eventuale partecipazione