PDA

View Full Version : [JAVA] Cercare un nodo in un albero binario


vfldj
31-10-2012, 22:33
Ciao! Ho un albero binario non di ricerca e devo creare un metodo che, dato un intero x, cerchi se x è presente nell'albero oppure no. Dev'essere facilissimo ma non mi viene.. Mi funziona solo se x si trova alla radice, altrimenti da errore.



public class BinaryTree {

protected class Node {

Integer element;
Node left;
Node right;

Node(int element) {
this.element = element;
left = right = null;
}

Node(int element, Node left, Node right) {
this.element = element;
this.left = left;
this.right = right;
}

boolean isLeaf() {
return left == null && right == null;
}
}

protected Node root;

public BinaryTree() {
root = null;
}

public boolean isEmpty() {
return root == null;
}

public boolean search(int x)
{
if (root == null)
return false;
return search(root, x);
}

protected boolean search(Node node, int x)
{
if(node.element == x)
return true;
else if (node.element != x)
return search(node.left, x) || search(node.right, x);
else
return false;
}

}



Grazie :D

gugoXX
01-11-2012, 09:10
Nella
protected boolean search(Node node, int x)
devi ritornare subito false, se node e' null

vfldj
01-11-2012, 13:52
Grazie :)