Liste semplici

di il
13 risposte

Liste semplici

Sapete dirmi perchè l'allocazione non mi funziona

#include <stdio.h>
#include <stdlib.h>

struct node {
    int value;
    struct node* next;
};

struct lista
{    int key;
    struct lista *next;
};

typedef struct node* List;

List initList(int value);
List InserisciInCoda(List L, int value);
List InserisciInTesta(List L, int value);
struct lista *dealloca(struct lista *top);
void CancellaInCoda(List L);

List initList(int value) {
    List L = (List)malloc(sizeof(struct node));
    L->value=value;
    L->next = NULL;
    return L;
}

List InserisciInCoda(List L, int value) {
    if (L != NULL) {
        L->next = InserisciInCoda(L->next, value);
    }
    else{
        L = initList(value);
    }
    return L;
}

List InserisciInTesta(List L, int value) {
    if (L != NULL) {
        List G = (List )malloc(sizeof(struct node));
        G->value = value;
        G->next = L;
        return G;
    }
    return initList(value);
}

void stampaLista(List L) {
    if (L != NULL) {
        printf("%d\t", L->value);
        stampaLista(L->next);
    }
}
struct lista *dealloca(struct lista *top)
{    if(top!=NULL)
    {    dealloca(top->next);
        free(top);
    }
    return NULL;
}


int main()
{
    int n;
    printf("Inserire la dimensione della lista\n");
    scanf("%d",&n);
    List L=NULL;
    int val = 0;
    for(int i=0; i<n; i++){
        printf("Inserire l'elemento %d della lista\n",i);
        scanf("%d",&val);
        L = InserisciInCoda(L,val);

    }
    stampaLista(L);
    for(int i=0; i<n;i++ ){
    printf("Inserire l'elemento %d della lista\n",i);
    scanf("%d",&val);
    L = InserisciInTesta(L,val);
    stampaLista(L);
  }
    struct lista *top=NULL;
    top = dealloca(top);
    return 0;
}

13 Risposte

  • Re: Liste semplici

    Queste

    struct lista *top=NULL;
    top = dealloca(top);

    che senso hanno? La lista allocata è L !
  • Re: Liste semplici

    oregon ha scritto:


    Queste

    struct lista *top=NULL;
    top = dealloca(top);

    che senso hanno? La lista allocata è L !
    L = de alloca(L)....è giusto?
  • Re: Liste semplici

    saraciao ha scritto:


    oregon ha scritto:


    Queste

    struct lista *top=NULL;
    top = dealloca(top);

    che senso hanno? La lista allocata è L !
    dealloca(L)....è giusto?
  • Re: Liste semplici

    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
  • Re: Liste semplici

    Scusa sara ... ma non avevi risolto tempo fa? Avevi scritto del codice e ti era stato corretto dopo un bel po' di post. Adesso lo hai cambiato di nuovo introducendo nuovi errori come se non avessi capito nulla di tutto quello che ti è stato detto.

    Che si fa, si ricomincia con altre decine di post?
  • Re: Liste semplici

    oregon ha scritto:


    Scusa sara ... ma non avevi risolto tempo fa? Avevi scritto del codice e ti era stato corretto dopo un bel po' di post. Adesso lo hai cambiato di nuovo introducendo nuovi errori come se non avessi capito nulla di tutto quello che ti è stato detto.

    Che si fa, si ricomincia con altre decine di post?
    Mhh no è un’altro programma
  • Re: Liste semplici

    saraciao ha scritto:


    oregon ha scritto:


    Scusa sara ... ma non avevi risolto tempo fa? Avevi scritto del codice e ti era stato corretto dopo un bel po' di post. Adesso lo hai cambiato di nuovo introducendo nuovi errori come se non avessi capito nulla di tutto quello che ti è stato detto.

    Che si fa, si ricomincia con altre decine di post?
    Mhh no è un’altro programma ed ho provato con quella funzione ma non mi compila
  • Re: Liste semplici

    Nippolo ha scritto:


    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
    Intendo eliminare tutta la lista
  • Re: Liste semplici

    saraciao ha scritto:


    Nippolo ha scritto:


    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
    Intendo eliminare tutta la lista ed inserirne un’altra
  • Re: Liste semplici

    saraciao ha scritto:


    Mhh no è un’altro programma ed ho provato con quella funzione ma non mi compila
    Hai provato? Ma scusa stai imparando mentre programmi o no? Non capisco che tipo di studio tu stia facendo. Ad ogni thread su questo forum sembra che tu non abbia mai lavorato su un programma, non hai la minima idea di quello che fai. Copi e incolli a caso codice e lo porti qui per correggerlo.

    Non impari assolutamente nulla e non è facile seguire i tuoi thread se hai questo tipo di approccio.

    Hai due struct ma ne devi usare una SOLA, quella che hai usato in tutte le funzioni con un nuovo tipo chiamato List e che devi usare ANCHE nella deallocazione.
  • Re: Liste semplici

    saraciao ha scritto:


    Nippolo ha scritto:


    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
    Intendo eliminare tutta la lista
    In che modo secondo te qualcuno dovrebbe capire che con "l'allocazione non mi funziona" tu intenda che stai avendo problemi con l'eliminazione della lista? Al massimo avresti dovuto scrivere che la DEallocazione non ti funziona, termine che dovresti conoscere visto che è il nome di una delle funzioni, a meno che tu non l'abbia copiata da qualche parte!

    P.S.
    Perchè mandi ogni messaggio in duplice copia?
  • Re: Liste semplici

    Nippolo ha scritto:


    saraciao ha scritto:


    Nippolo ha scritto:


    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
    Intendo eliminare tutta la lista
    In che modo secondo te qualcuno dovrebbe capire che con "l'allocazione non mi funziona" tu intenda che stai avendo problemi con l'eliminazione della lista? Al massimo avresti dovuto scrivere che la DEallocazione non ti funziona, termine che dovresti conoscere visto che è il nome di una delle funzioni, a meno che tu non l'abbia copiata da qualche parte!

    P.S.
    Perchè mandi ogni messaggio in duplice copia?
    Benvenuto nel club di saraciao
  • Re: Liste semplici

    Nippolo ha scritto:


    saraciao ha scritto:


    Nippolo ha scritto:


    Ci sarebbero da fare varie osservazioni, ma innanzitutto potresti spiegarmi cosa intendi con "l'allocazione non mi funziona"?
    Intendo eliminare tutta la lista
    In che modo secondo te qualcuno dovrebbe capire che con "l'allocazione non mi funziona" tu intenda che stai avendo problemi con l'eliminazione della lista? Al massimo avresti dovuto scrivere che la DEallocazione non ti funziona, termine che dovresti conoscere visto che è il nome di una delle funzioni, a meno che tu non l'abbia copiata da qualche parte!

    P.S.
    Perchè mandi ogni messaggio in duplice copia?
    Ah no scusa in realtà non ho riletto il messaggio notando che il cellulare mi ha cambiato la parola all’inizio era deallocazione infatti la funzione è dealloca. Per il messaggio che si manda due volte non ho idea perché si ricopia ma non è un mio problema io l’ho invio solo una volta
Devi accedere o registrarti per scrivere nel forum
13 risposte