Vinculado árbol binario

votos
-6

Estoy teniendo un problema encontrar la manera de conseguir mi función de búsqueda para trabajar por mi árbol binario que devuelve verdadero para la raíz, pero no sé cómo hacer para recorrer el resto del árbol.

public boolean contains(Object e)
     {
         return search(root, e);
     }

private boolean search(BinaryNode n, Object e)
    {

        //If the current node is null,
         //then the value clearly isn't found and return false.

         if (n == null) 
         {
             return false;
    } 
        //If the node contains the search value,
        //then the value is found and return true.
         if(n.getValue() == e)
        {
            return true;
        }


         //If the node isn't null but also doesn't contain the search value,
         //then search both the left and right subtrees

         return false;

     }
Publicado el 27/04/2017 a las 20:22
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Aquí es una implementación de Contains()de algún código golang que tenía por ahí en mi escritorio. Usted podría portarlo a Java.

// Contains indicated whether or not a value is in the tree.
func (tree *Tree) Contains(value int) bool {
    return (tree.find(tree.Root, value) != nil)
}

// find will search for a node containing a given value, in a tree whose
// root node is root.
func (tree *Tree) find(root *Node, value int) *Node {
    if nil == root {
        return nil
    }

    if value > root.Data {
        return tree.find(root.Right, value)
    } else if value < root.Data {
        return tree.find(root.Left, value)
    } // else, root.Data == node.Data

    return root
}
Respondida el 27/04/2017 a las 21:05
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more