Salve,ho un problema con un esercizio sulle liste in C. Premetto che sono alle prime armi e anche se capisco come in teoria dovrebbero funzionare non riesco a scrivere il programma.
L'esercizio è il seguente:
La mia idea era quella di scansionare la lista facendo sommare i valori.Tipo come se fosse un array,avere due puntatori che puntano rispettivamente uno al primo e l'altro al secondo elemento e sommarli.Poi confrontare la somma con il valore k. se la somma<k fare una specie di chiamata ricorsiva in cui alla somma aggiungo il prossimo elemento finché non si raggiunge il valore k. Il problema è che non so come far capire al programma di salvare i precedenti valori e e poi come eliminarli una volta trovata la sequenza."Sia data una struttura
che rappresenta un elemento di una lista di interi.codice:typedef struct elemento { int val; struct elemento *next } item;
Si scriva una procedura
che data una lista lis di interi positivi e un intero positivo k, cerca all'interno di list la prima sequenza di elementi consecutivi la cui somma sia esattamente k, e elimina tali elementi dalla lista. La funzione deve restituire un puntatore al primo elemento della lista così modificata.codice:lista *SeekAndDestroy(lista *l, int k)
Avevo anche pensato a salvare questi interi in una nuova lista(esempio list current) e poi magari attraverso la funzione ricerca cercare nella vecchia lista gli elementi della list current ed eliminarli,ma come ho detto mi blocco nel scrivere in concreto il programma.
Grazie

Rispondi quotando
