Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-02-2006, 11:41   #1
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
[JAVA] Alberi e Metodo Ricorsivo per contare le foglie

Ciao,
ho come esercizio l'implementazione di un metodo ricorsivo con questa intestatura:

int calcola(AlberoBinario a)

che prende un albero binario e ritorna il numero di foglie che esso possiede.

Un albero binario è un insieme di nodi, che partono da un'unica radice e si raddoppiano ogni volta scendendo di livello... il nodo superiore è detto padre e i due nodi inferiori sono detti figli..

un nodo è detto foglia quando non possiede nessun figlio!!

Quindi il metodo deve ricorsivamente controllare tutti i nodi che non hanno nessun figlio e ritornarne l'esatto numero.

Questa è la soluzione a cui ho pensato.. sapreste dirmi se è giusta o se ho sbagliato qualcosa? Grazie

Codice:
public int calcola(AlberoBinario a){
if(a==null) return 0;  //se l'albero è uguale a null vuol dire che è finito e io sono uscito fuori dall'ultima foglia
int f=0;
if(a.figlioSX==null&& a.figlioDX==null) f++; //supponendo che a.figlioSX e DX ritornino true se il nodo ha figlio e false altrimenti
f=calcola(a.figlioSX);
f=calcola(a.figlioDX);
return f+=f;
}
Spero di essere stato abbastanza chiaro! Grazie a chi vorrà darmi il suo parere
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 12:51   #2
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
up
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 13:39   #3
Galotar
Utente sospeso
 
L'Avatar di Galotar
 
Iscritto dal: Jul 2002
Città: Ostia/Roma
Messaggi: 1191
Quote:
Originariamente inviato da luxorl
Ciao,
ho come esercizio l'implementazione di un metodo ricorsivo con questa intestatura:

int calcola(AlberoBinario a)

che prende un albero binario e ritorna il numero di foglie che esso possiede.

Un albero binario è un insieme di nodi, che partono da un'unica radice e si raddoppiano ogni volta scendendo di livello... il nodo superiore è detto padre e i due nodi inferiori sono detti figli..

un nodo è detto foglia quando non possiede nessun figlio!!

Quindi il metodo deve ricorsivamente controllare tutti i nodi che non hanno nessun figlio e ritornarne l'esatto numero.

Questa è la soluzione a cui ho pensato.. sapreste dirmi se è giusta o se ho sbagliato qualcosa? Grazie

Codice:
public int calcola(AlberoBinario a){
if(a==null) return 0;  //se l'albero è uguale a null vuol dire che è finito e io sono uscito fuori dall'ultima foglia
int f=0;
if(a.figlioSX==null&& a.figlioDX==null) f++; //supponendo che a.figlioSX e DX ritornino true se il nodo ha figlio e false altrimenti
f=calcola(a.figlioSX);
f=calcola(a.figlioDX);
return f+=f;
}
Spero di essere stato abbastanza chiaro! Grazie a chi vorrà darmi il suo parere
Leggendo il codice tu assegni ad "f" prima il conteggio delle foglie dei figli sinistri e poi riassegni sempre ad "f" quelle del figlio destro : in ultima analisi ritorni f(foglie ramo destro) + se stesso.
Io farei cosi :

public int calcola(AlberoBinario a){
if(a==null) return 0;
if(a.figlioSX==null&& a.figlioDX==null) return 1;
int g=calcola(a.figlioSX);
int h=calcola(a.figlioDX);
return g+h;
}

Prova e fammi sapere.
Mii che pippe mentali
__________________
Codice:
Ho concluso affari con : 8310(1,2),luxo,weather65,gokou,Zara,LotharInt,Mammabell,cionci,omerook,nathbigga,V0r[T3X],FatMas,3N20,smickys,CICUS,Dreamland,morpheus89,AMDman,Andi89,drive97,mich25,killerbox,abc3d,Sclergio,saint80,mazä,MR_GINO,OdinEidolon,ezekiel22

Ultima modifica di Galotar : 15-02-2006 alle 13:43.
Galotar è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 15:15   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Galotar, il tuo algoritmo ha un paio di problemi:
1) non devi ritornare g+h ma g+h+1
2) il secondo if è inutile

io lo farei così:
Codice:
int calcola(AlberoBinario a) {
	if (null == a) {
		return 0;
	}
	return calcola(a.figlioSX) + calcola(a.figlioDX) + 1;
}
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 15:27   #5
Galotar
Utente sospeso
 
L'Avatar di Galotar
 
Iscritto dal: Jul 2002
Città: Ostia/Roma
Messaggi: 1191
Quote:
Originariamente inviato da 71104
Galotar, il tuo algoritmo ha un paio di problemi:
1) non devi ritornare g+h ma g+h+1
2) il secondo if è inutile

io lo farei così:
Codice:
int calcola(AlberoBinario a) {
	if (null == a) {
		return 0;
	}
	return calcola(a.figlioSX) + calcola(a.figlioDX) + 1;
}
1)Perchè devi aggiungiere 1?
2)Se Figlio è null non dovrebbe ritornare 0?

Fammi capire non ho capito perchè sono errori.

Edito : adesso ho capito credevo avessi levato l'if con il ritorno 0.
Cmq dovrebbe funzionare pure il mio di algoritmo,il tuo è più elegante ed efficiente sicuramente.
__________________
Codice:
Ho concluso affari con : 8310(1,2),luxo,weather65,gokou,Zara,LotharInt,Mammabell,cionci,omerook,nathbigga,V0r[T3X],FatMas,3N20,smickys,CICUS,Dreamland,morpheus89,AMDman,Andi89,drive97,mich25,killerbox,abc3d,Sclergio,saint80,mazä,MR_GINO,OdinEidolon,ezekiel22

Ultima modifica di Galotar : 15-02-2006 alle 15:58.
Galotar è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 16:12   #6
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Quote:
Originariamente inviato da 71104
Codice:
int calcola(AlberoBinario a) {
	if (null == a) {
		return 0;
	}
	return calcola(a.figlioSX) + calcola(a.figlioDX) + 1;
}
Questo pero' calcola il numero dei nodi, non delle foglie.
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 16:13   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Galotar
1)Perchè devi aggiungiere 1?
2)Se Figlio è null non dovrebbe ritornare 0?

Fammi capire non ho capito perchè sono errori.

Edito : adesso ho capito credevo avessi levato l'if con il ritorno 0.
Cmq dovrebbe funzionare pure il mio di algoritmo,il tuo è più elegante ed efficiente sicuramente.
no, il mio non funziona perché ho letto solo adesso che l'algoritmo deve contare solo le foglie ^_^'
quello che ho scritto io conta tutti i nodi, invece per contare le foglie era corretto il tuo.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 16:13   #8
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Qu@ker
Questo pero' calcola il numero dei nodi, non delle foglie.
appunto
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2006, 16:26   #9
Galotar
Utente sospeso
 
L'Avatar di Galotar
 
Iscritto dal: Jul 2002
Città: Ostia/Roma
Messaggi: 1191
Quote:
Originariamente inviato da 71104
no, il mio non funziona perché ho letto solo adesso che l'algoritmo deve contare solo le foglie ^_^'
quello che ho scritto io conta tutti i nodi, invece per contare le foglie era corretto il tuo.

Miii che caciara st'algoritmo
__________________
Codice:
Ho concluso affari con : 8310(1,2),luxo,weather65,gokou,Zara,LotharInt,Mammabell,cionci,omerook,nathbigga,V0r[T3X],FatMas,3N20,smickys,CICUS,Dreamland,morpheus89,AMDman,Andi89,drive97,mich25,killerbox,abc3d,Sclergio,saint80,mazä,MR_GINO,OdinEidolon,ezekiel22
Galotar è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Invia il tuo nome a 1,5 milioni di chilo...
Apple MacBook Neo 13'' con chip A18 Pro ...
Insieme a Leica SL3-P presentate le otti...
La Cina svilupperà anche il razzo...
Rocket Lab e la missione Victus Haze per...
Starship: Ship 40 ha eseguito uno static...
I nuovi Samsung Galaxy Watch 9 si mostra...
Einsten aveva ragione, di nuovo: captate...
Top 10 offerte Amazon: 5 sono partite qu...
AI Conf 2026: l'intelligenza artificiale...
Samsung Galaxy S26 scende a 711,49€: un ...
Dopo il maxi blackout, la Spagna cambia ...
Costa meno di un MacBook e fa molto di p...
Ecco tutti i robot aspirapolvere rimasti...
Più partite da seguire in contemporanea?...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v