Ciao a tutti, fra 2 giorni avrò l'esame su fondamenti di informatica ed ho un grosso dubbio, vi prego aiutatemi!
Non riesco a capire quando usare il puntatore singolo rispetto a quello doppio nelle strutture dati tipo liste ed alberi. Io ragiono in questo modo:
Se per esempio ho questo:
typedef struct lista_ele{
int ele;
lista_ele *prox;
}lista;
chiamo la funzione conta che mi scorre una lista in questo modo:
void conta(lista *pun){
int i=0;
if(pun->prox!=NULL){
pun=pun->porx;
i++;
}
}
}
quando il controllo torna al client, il puntatore alla lista è modificato o no?
e se invece la scrivo così:
lista conta(lista *pun){
int i=0;
if(pun->prox!=NULL){
pun=pun->porx;
i++;
}
}
return pun;
}
o anche così:
lista conta(lista *pun){
int i=0;
lista *temp=pun;
if(temp->prox!=NULL){
temp=temp->porx;
i++;
}
}
return pun;
}
Spiegatemi quali delle tre funzionano senza modificare il puntatore alla lista e perchè!!!!!
aiutatemi vi prego, spiegatemi questi dubbi...cmq questa è la prima domanda poi ne ho un altra sul doppio puntatore!

Rispondi quotando