Class ArbolBinarioCompleto<T>

java.lang.Object
mx.unam.ciencias.edd.ArbolBinario<T>
mx.unam.ciencias.edd.ArbolBinarioCompleto<T>
All Implemented Interfaces:
Iterable<T>, Coleccion<T>

public class ArbolBinarioCompleto<T> extends ArbolBinario<T>

Clase para árboles binarios completos.

Un árbol binario completo agrega y elimina elementos de tal forma que el árbol siempre es lo más cercano posible a estar lleno.

  • Constructor Details

    • ArbolBinarioCompleto

      public ArbolBinarioCompleto()
      Constructor sin parámetros. Para no perder el constructor sin parámetros de ArbolBinario.
    • ArbolBinarioCompleto

      public ArbolBinarioCompleto(Coleccion<T> coleccion)
      Construye un árbol binario completo a partir de una colección. El árbol binario completo tiene los mismos elementos que la colección recibida.
      Parameters:
      coleccion - la colección a partir de la cual creamos el árbol binario completo.
  • Method Details

    • agrega

      public void agrega(T elemento)
      Agrega un elemento al árbol binario completo. El nuevo elemento se coloca a la derecha del último nivel, o a la izquierda de un nuevo nivel.
      Parameters:
      elemento - el elemento a agregar al árbol.
      Throws:
      IllegalArgumentException - si elemento es null.
    • elimina

      public void elimina(T elemento)
      Elimina un elemento del árbol. El elemento a eliminar cambia lugares con el último elemento del árbol al recorrerlo por BFS, y entonces es eliminado.
      Parameters:
      elemento - el elemento a eliminar.
    • altura

      public int altura()
      Regresa la altura del árbol. La altura de un árbol binario completo siempre es ⌊log2n⌋.
      Overrides:
      altura in class ArbolBinario<T>
      Returns:
      la altura del árbol.
    • bfs

      public void bfs(AccionVerticeArbolBinario<T> accion)
      Realiza un recorrido BFS en el árbol, ejecutando la acción recibida en cada elemento del árbol.
      Parameters:
      accion - la acción a realizar en cada elemento del árbol.
    • iterator

      public Iterator<T> iterator()
      Regresa un iterador para iterar el árbol. El árbol se itera en orden BFS.
      Returns:
      un iterador para iterar el árbol.