Un saluto a tutti,
sto continuando a studiare e sperimentare e questa mattina sono incappato in un dilemma: "la modifica ricorsiva dei dati".
Cerco di spiegarmi meglio:
Ipotizziamo di avere una struttura dati cosifatta:
struct Prova {
int id;
int valore;
int puntaId[50];
};
Un esempio del contenuto è questo:
id=1
valore=5;
puntaId[0]=2
puntaId[1]=5
puntaId[2]=7
id=2
valore=10;
puntaId[0]=1
puntaId[1]=8
puntaId[2]=9
e cosi via....
Vorrei fare una cosa del genere:
Leggo l'id di ciascuna istanza e vedo a quale essa punta (puntaId).
Nel primo caso punta a 2,5,7.
A questo punto accedo alle istanze 2,5,7 per modificare il loro valore a 100.
A questo punto però voglio modificare ricorsivamente le istanze a cui puntano rispettivamente 2,5,7, modificando il loro valore mettendolo alla metà di prima (quindi 50, in pratica ad ogni livello successivo di profondità, voglio dimezzare).
Quindi andrò a visitare l'istanza con ID=2 e vedrò che punta a 1,8,9 ma l'1 non mi interessa perchè è l'ID padre, per questo andrò a modificare l'8 e il 9....e cosi via![]()
Per ottenere alla fine una cosa del genere.
id=1
valore=5;
puntaId[0]=2
puntaId[1]=5
puntaId[2]=7
id=2
valore=100;
puntaId[0]=1
puntaId[1]=8
puntaId[2]=9
id=5
valore=100
puntaId[0]=2
id=7
valore=100
puntaId[0]=1
id=8
valore=50
puntaId[0]=2
id=9
valore=50
puntaId[0]=10
id=10
valore=25
puntaId[0]=1
Lo so sembra una cosa pazza :berto:, ma avete qualche idea?
Grazie.
P.S.
spero di aver scritto correttamente l'oggetto.
![]()