View Single Post
Old 25-03-2008, 14:04   #4
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Un algotirmo scritto in 5 sec sarebbe
Codice:
public static boolean isBST(Albero alb){
	if (alb==null) return true; //Un albero vuoto è un albero di ricerca
	if (alb.sx==null && alb.dx==null) return true; //Se sono foglia sono un albero di ricerca
	if (alb.sx==null && alb.info.compareTo(alb.dx.info)<0) return true; //Se il sottoalbero sinistro è vuoto e sono piu piccolo del sottoalbero destro sono un BST
	if (alb.sx==null && alb.info.compareTo(alb.dx.info)>0) return false; //Se il sottoalbero sinistro è vuoto e sono piu grande del sottoalbero destro non sono un BST
	if (alb.dx==null && alb.info.compareTo(alb.sx.info)>0) return true; //Se il sottoalbero destro è vuoto e sono piu grande del sottoalbero sinistro sono un BST
	if (alb.dx==null && alb.info.compareTo(alb.sx.info)<0) return true; //Se il sottoalbero destro è vuoto e sono piu piccolo del sottoalbero sinistro non sono un BST
	if (alb.info.compareTo(alb.sx.info)<0 || alb.info.compareTo(alb.dx.info)>0) return false; //Se sono piu grande del sottoalbero destro o piu piccolo di quello sinistro non sono un BST
	return isBSD(alb.sx) && isBST(alb.dx); //controllo se i miei figli sono bst
}
non garantisco che sia giusto
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB
morskott è offline   Rispondi citando il messaggio o parte di esso