Funzione che spacca la lista...Double linked list

di il
2 risposte

Funzione che spacca la lista...Double linked list

Del seguente esercizio, vorrei essere sicuro di aver compreso correttamente la soluzione, datemi qualche minuto e scrivo un nuovo messaggio con la mia spiegazione...
Allegati:
31893_c0c8b4ca3779d51254708febac8a70a9.jpg
31893_c0c8b4ca3779d51254708febac8a70a9.jpg

31893_c681b4d30b3e9f06c6b9274fd81410ff.jpg
31893_c681b4d30b3e9f06c6b9274fd81410ff.jpg

2 Risposte

  • Re: Funzione che spacca la lista...Double linked list

    Il nome della funzione mi viene dato e quindi procedo subito con lo scriverla:
    list split_list(list l, node n)


    Secondo e terzo rigo, scrive:
    list new = malloc(sizeof(struct_list)); 
    if(!new) return NULL;
    
    viene allocata una lista nuova, cioè list new e viene allocata con dimensione pari alla struttura list.
    Viene aggiunto una condizione base che è l'if e impone che se non si ha la nuova lista, allora deve ritornare NULL.

    Quarto e quinto rigo, scrive:
    new -> first = n; 
    new -> last = l -> last;

    dice che la nuova lista parte dalla nodo n specificato come parametro
    dice anche che la nuova lista termina con l come ultimo parametro.

    Sesto rigo, scrive:
    l-> last = n -> prev 

    dice che l deve essere l'ultimo e n deve essere il precedente.

    Settimo rigo in poi, scrive:
    if(!l -> last) 
    l->fisrt = NULL; 
    else{ 
    n->prev->next= NULL; 
    n->prev=NULL; 
    } 
    return 1; 
    }

    dice che se l non è l'ultimo, allora l che è il primo deve essere NULLO, altrimenti n che punta al precedente e al successivo come NULLO, verrà eliminato il successivo e quindi n che punta al precedente sarà NULLO.
    E poi deve sempre ritornare 1, sia se è verificato if che se è verificato else.

    Ho tradotto correttamente
  • Re: Funzione che spacca la lista...Double linked list

    Ma lo sai che all'esame non hai alcuna soluzione da "tradurre"?

    MT09_full ha scritto:


    E poi deve sempre ritornare 1, sia se è verificato if che se è verificato else.
    Qui sono quasi caduto dalla sedia!

    Scherzi a parte, ribadisco il consiglio che ti ho sempre dato: inizia a programmare con compilatore alla mano.
Devi accedere o registrarti per scrivere nel forum
2 risposte