miércoles, 21 de mayo de 2014

BUSQUEDA

La búsqueda consiste acceder a la raíz del árbol, si el elemento a localizar coincide con éste la búsqueda ha concluido con éxito, si el elemento es menor se busca en el subárbol izquierdo y si es mayor en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el árbol. Cabe destacar que la búsqueda en este tipo de árboles es muy eficiente, representa una función logarítmica. El máximo número de comparaciones que necesitaríamos para saber si un elemento se encuentra en un árbol binario de búsqueda estaría entre [log2(N+1)] y N, siendo N el número de nodos. La búsqueda de un elemento en un ABB (Árbol Binario de Búsqueda) se puede realizar de dos formas, iterativa o recursiva.
Ejemplo de versión iterativa en el lenguaje de programación C, suponiendo que estamos buscando una clave alojada en un nodo donde está el correspondiente "dato" que precisamos encontrar:(WIKIPEDIA, 2014)
data Buscar_ABB(abb t,clave k) 
{
  abb p;
  dato e;
  e=NULL;
  p=t;
  if (!estaVacio(p))
    {
      while (!estaVacio(p) && (p->k!=k) )
        {
          if (k < p->k)
            {
              p=p->l;
            }
          if (p->k < k)
            {
              p=p->r;
            }
        }
      if (!estaVacio(p) &&(p->d!=NULL) )
        {
          e=copiaDato(p->d);                       
        }                                          
    }
  return e;
}

BIBLIOGRAFÍA: 
WIKIPEDIA. (21 de 05 de 2014). Árbol binario de búsqueda . Recuperado el 21 de 05 de 2014, de BUSQUEDA: http://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda#B.C3.BAsqueda

No hay comentarios:

Publicar un comentario