View Full Version : [C]DUBBIO LISTE
emiliano30
01-06-2005, 11:08
void inserisci_dopo (lista &L, nodo *p, int n)
{
nodo *q = new nodo;
q->n = n;
q->prossimo = p->prossimo;
p->prossimo = q;
}
ho un piccolo dubbio,
nella prima riga creo un nuovo nodo puntato da q,
nella terza q punta al prossimo nodo come p,
nella riga 4 inserisco i nodo....
se non si fosse capito non mi è chiara la seconda riga :p (nel nodo q che punta ad n inserisco n?)..come al solito le dritte sono ben accette
ghiotto86
01-06-2005, 12:07
il fatto è semplice.
se vedi la struttura del nodo dovrebbe essere fatta così
struct nodo{
int n;
nodo *prossimo;
}
quando tu fai q->n=n dici che il campo n puntato da q deve essere uguale ad un intero n.
per non confonderti perchè alla funzione non passi la variabile con un'altro nome??
tipo elemento.
ciao
D4rkAng3l
01-06-2005, 12:46
void inserisci_dopo (lista &L, nodo *p, int n)
{
nodo *q = new nodo;
q->n = n;
q->prossimo = p->prossimo;
p->prossimo = q;
}
ho un piccolo dubbio,
nella prima riga creo un nuovo nodo puntato da q,
nella terza q punta al prossimo nodo come p,
nella riga 4 inserisco i nodo....
se non si fosse capito non mi è chiara la seconda riga :p (nel nodo q che punta ad n inserisco n?)..come al solito le dritte sono ben accette
Scusa ma per inserire un nuovo nodo lo dovrai presumibilmente allocare dinamicamente con malloc...che intendi con nodo *q = new nodo;
Così stai dichiarando un puntatore q di tipo nodo...e gli devi attribuire l'indirizzo di un nuovo nodo allocato dinamicamente.
poi quando fai q->n = n; dici semplicemente che il campo n puntato dal nodo il cui indirizzo è contenuto in q viene settato al valore intero contenuto nella variabile n
q->prossimo = p->prossimo; questa setta il campo prossimo del nodo puntato da q con il valore contenuto nel campo prossimo del nodo puntato da p
p->prossimo = q; e questa setta il campo prossimo del nodo puntato da p con l'indirizzo in q se non erro...
Però a che ti serve questo programma?non ne vedo un'utilità pratica ma forse mi sbaglio...
Spero di esserti stato d'aiuto...
Ciao
Andrea
Ziosilvio
01-06-2005, 14:23
per inserire un nuovo nodo lo dovrai presumibilmente allocare dinamicamente con malloc
Questo è C++, in cui il ruolo delle funzioni malloc e free è svolto dagli operatori new e delete rispettivamente.
D4rkAng3l
01-06-2005, 14:58
wee...ciao grande ZioSilvio..come stai?
cmq lui aveva scritto C...ecco perchè c'era qualcosa che non mi quadrava...di C++ non sò nulla :D
Fenomeno85
02-06-2005, 11:18
wee...ciao grande ZioSilvio..come stai?
cmq lui aveva scritto C...ecco perchè c'era qualcosa che non mi quadrava...di C++ non sò nulla :D
cmq non cambia nulla tranne il metodo da utilizzare :)
~§~ Sempre E Solo Lei ~§~
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.