Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti, sto provando a implementare le funzioni di una lista linkata, però non so come procedere con la funzione di cancellazione di tutta la lista(void destroy(element * h) ), spero che voi possiate aiutarmi grazie in anticipo!!
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <stdlib.h>
struct element {
int info;/* valore dell’elemento */
struct element* next;/* indirizzo del prossimo elemento */
};
typedefstruct element element;//consente di usare il tipo element come sinonimo del tipo struct element.
element* insert(element* list, int n);
element* find(element* list, int n);
void print_list(element* h);
element*delete(element* h, int n);
void destroy(element* h);
int conta;// variabile globale
int main (void){
char c;
int n, count=0;
element* head;
element* prova;
head=NULL;
prova=NULL;
while(( c =getchar())!='f'){/* c e’ il prossimo carattere letto da standard input Il ciclo termina quando c e’ il carattere ’f’ */
ciao, grazie di aver risposto , per ora non da errore ma non cancella, ad esempio se inserisco 3 elementi, nell'ultima posizione mette 0 poi nelle altre dei valori che mi sembrano siano degli indirizzi di memoria.
Ciao, grazie ancora dell'aiuto ,comunque il resto del codice sembra funzionare il problema è questa funzione in teoria il tuo codice dovrebbe essere corretto anche perché la funzione delete singolarmente funziona, invece se richiamata da destroy mi da in output
Codice sorgente - presumibilmente Plain Text
+1+2+3 // +1 = insert(element *list, 1)..
p // stampa
n: 3
n: 2
n: 1
-2 //delete(element* h, 2)
p
n: 3
n: 1
d //void destroy(element *h)
p
n: 134520848
n: 134520864
che se non sbaglio sono indirizzi di memoria vero?
si, utilizzando la tu funzione ottengo l'output che ho postato , la cosa strana è che la funzione delete funziona se chiamata da singoli elementi invece con la ricorsione non va..., ciao e grazie
Ultima modifica effettuata da uranio il 06/12/2008 alle 18:55