public int eliminar(String palabra) {
      int eliminados = 0;
      char c = palabra.charAt(0); // Primer carácter de la palabra

      if (izqNodo != null
          && izqNodo.caracter
              == c) // Sólo se continúa la eliminación si el primer carácter de la palabra es igual
      // al del nodo actual
      {
        if (palabra.length() > 1) {
          eliminados += izqNodo.eliminar(palabra.substring(1));
          if (izqNodo.izqNodo == null && eliminados > 0 && izqNodo.elemento == null) {
            izqNodo = izqNodo.hermanoDerNodo;
            eliminados++;
          }
        } else {
          if (izqNodo.elemento != null) {
            izqNodo.elemento = null;
            if (izqNodo.izqNodo == null) {
              izqNodo = izqNodo.hermanoDerNodo;
              eliminados++;
            }
          }
        }
      } else if (izqNodo != null
          && izqNodo.caracter < c
          && izqNodo.hermanoDerNodo
              != null) // Buscar si la palabra existe en otro nodo a la derecha y eliminarla
      {
        // Buscar el nodo en el que se debe realizar la eliminación
        NodoPA<T> hermanoIzquierdo = izqNodo;
        NodoPA<T> nodo = izqNodo.hermanoDerNodo;
        while (nodo != null && nodo.caracter != c) {
          hermanoIzquierdo = nodo;
          nodo = nodo.hermanoDerNodo;
        }

        if (nodo != null && palabra.length() > 1) {
          eliminados = nodo.eliminar(palabra.substring(1));
          if (nodo.izqNodo == null && eliminados > 0 && nodo.elemento == null) {
            hermanoIzquierdo.hermanoDerNodo = nodo.hermanoDerNodo;
            eliminados++;
          }
        } else if (nodo != null && nodo.elemento != null) {
          nodo.elemento = null;
          if (nodo.izqNodo == null) {
            hermanoIzquierdo.hermanoDerNodo = nodo.hermanoDerNodo;
            eliminados++;
          }
        }
      }
      return eliminados;
    }
    public int insertar(String palabra, T elem) {

      // Si la palabra solo tiene 1 carácter y el elemento del hijo izquierdo es igual al elemento a
      // insertar, entonces la palabra es repetida
      if (palabra.length() == 1
          && izqNodo != null
          && izqNodo.elemento != null
          && izqNodo.elemento.equals(elem)) {}

      int elementosInsertados = 0;
      char nCaracter = palabra.charAt(0);

      if (izqNodo != null
          && izqNodo.caracter
              == nCaracter) // Si el carácter del hijo izquierdo es igual al que se quiere insertar
      {
        if (palabra.length() != 1)
          return izqNodo.insertar(
              palabra.substring(1),
              elem); // El hijo izquierdo es responsable de insertar el nuevo elemento
        else izqNodo.elemento = elem; // Se agregó un prefijo de una palabra existente
      } else if (izqNodo != null && izqNodo.caracter > nCaracter) {
        NodoPA<T> nuevoNodo = null;
        if (palabra.length() == 1) {
          nuevoNodo = new NodoPA<T>(nCaracter, elem);
        } else {
          nuevoNodo = new NodoPA<T>(nCaracter); // Nodo solo con el caracter
          elementosInsertados += nuevoNodo.insertar(palabra.substring(1), elem);
        }
        // El carácter a insertar debería ser el nuevo hijo izquierdo del nodo actual
        NodoPA<T> temp = izqNodo;
        izqNodo = nuevoNodo;
        izqNodo.hermanoDerNodo = temp;
        elementosInsertados++;
      } else if (izqNodo != null
          && izqNodo.hermanoDerNodo
              != null) // Se debe agregar el nodo sobre los hermanos del nodo actual
      {
        // Se mantiene el anterior por si se deben correr los nodos hermanos
        NodoPA<T> iterador = izqNodo.hermanoDerNodo;
        NodoPA<T> anterior = izqNodo;
        // Ubicar el lugar donde deba ir el nuevo hermano
        while (iterador != null && iterador.caracter < nCaracter) {
          anterior = iterador;
          iterador = iterador.hermanoDerNodo;
        }
        if (iterador != null
            && iterador.caracter
                == nCaracter) // Encontró el nodo que deba agregar el resto de la palabra
        {
          if (palabra.length() == 1) {
            // En caso que la palabra termine y solo deba agregar el elemento a ese nodo
            iterador.elemento = elem;
            elementosInsertados++;
          } else elementosInsertados += iterador.insertar(palabra.substring(1), elem);
        } else {
          NodoPA<T> nuevoNodo = null;
          if (palabra.length() == 1) {
            nuevoNodo = new NodoPA<T>(nCaracter, elem);
          } else {
            nuevoNodo = new NodoPA<T>(nCaracter); // Nodo solo con el caracter
            elementosInsertados += nuevoNodo.insertar(palabra.substring(1), elem);
          }
          // Se debe insertar un nuevo nodo entre dos hermanos
          // Debe crear un nuevo nodo y colocarlo
          anterior.hermanoDerNodo =
              nuevoNodo; // El nuevo hermanoDerecho del anterior es el nuevo nodo
          nuevoNodo.hermanoDerNodo =
              iterador; // El hermanoDerecho del nuevo nodo es el nodo que se tenia en iterador
          elementosInsertados++;
        }
      } else if (izqNodo != null
          && izqNodo.hermanoDerNodo == null) // No existe un hermano del nodo izquierdo
      {
        NodoPA<T> nuevoNodo = null;
        if (palabra.length() == 1) {
          nuevoNodo = new NodoPA<T>(nCaracter, elem);
        } else {
          nuevoNodo = new NodoPA<T>(nCaracter); // Nodo solo con el caracter
          elementosInsertados += nuevoNodo.insertar(palabra.substring(1), elem);
        }
        izqNodo.hermanoDerNodo = nuevoNodo;
        elementosInsertados++;
      } else {
        NodoPA<T> nuevoNodo = null;
        if (palabra.length() == 1) {
          nuevoNodo = new NodoPA<T>(nCaracter, elem);
        } else {
          nuevoNodo = new NodoPA<T>(nCaracter); // Nodo solo con el caracter
          elementosInsertados += nuevoNodo.insertar(palabra.substring(1), elem);
        }
        // Se agrega un nodo como el hijo izquierdo del nodo actual
        izqNodo = nuevoNodo;
        elementosInsertados++;
      }
      return elementosInsertados;
    }