Salve a tutti,
è un esercizio banale lo so ma non riesco a venirne a capo.
questo è il testo:
Scrivere il metodo Java static int sommaIntervallo(TreeNode radice, int min, int max) che re-
stituisce la somma dei soli nodi il cui valore è compreso tra min e max, sfruttando la struttura del BST per
evitare di visitare inutilmente porzioni di rami dell'albero. Calcolare il costo computazionale, motivandolo
opportunamente.
Questo è quello che ho scritto io, mi pare corretto logicamente, però testandolo non funziona come dovrebbe.
codice:public int stampaIntervallo(BSTNode root, int min, int max) { int somma = 0; if (root == null) return 0; if ((min < root.key) && (root.key < max)) { somma += root.key; if (root.left.key > min) somma += stampaIntervallo(root.left, min, max); if (root.right.key < max) somma += stampaIntervallo(root.right, min, max); } if (root.key > max) somma += stampaIntervallo(root.left, min, max); if (root.key < min) somma += stampaIntervallo(root.right, min, max); return somma; }

Rispondi quotando