Implementación de Árbol General en Java: Código Fuente Comentado

Classified in Design and Engineering

Written on in English with a size of 2.57 KB


public class NuevoArbolGeneral1 implements ArbolGeneral{
private NodoArbol1 nodoRaiz;


public NuevoArbolGeneral1()
{ nodoRaiz = null; }

public NuevoArbolGeneral1(E elemRaiz, NuevoArbolGeneral1 ... hijos) throws NullPointerException {
if (hijos==null) throw new NullPointerException();
if (hijos.length == 0) nodoRaiz=new NodoArbol1<>(elemRaiz, null, null, null);
else { int i=0;
for (;i<hijos.length-1;i++)
hijos[i].nodoRaiz.setHer(hijos[i+1].nodoRaiz); }
nodoRaiz=new NodoArbol1<>(elemRaiz, hijos[0].nodoRaiz, null, hijos[i].nodoRaiz); } }


private NuevoArbolGeneral1(NodoArbol1 raiz) { nodoRaiz = raiz; }

public boolean esVacio() { return nodoRaiz == null; }

public E raiz() throws ArbolVacioExcepcion {
if (esVacio()) throw new ArbolVacioExcepcion("raiz: Árbol vacío");
return nodoRaiz.getElemento(); }

public boolean esta (E elemento) {
return esta(nodoRaiz, elemento); }

private boolean esta (NodoArbol1 raiz, E elemento) {
if (raiz == null) return false;
if (raiz.getElemento().equals(elemento)) return true;
NodoArbol1 hijo = raiz.getHijo();
while (hijo != null){
if (esta(hijo,elemento)) return true;
else hijo=hijo.getHer(); }
return false; }

public ArbolGeneral hijoMasIzq() throws ArbolVacioExcepcion {
if (esVacio())
throw new ArbolVacioExcepcion("hijoIzq: Árbol vacío");
return new NuevoArbolGeneral1<>(nodoRaiz.getHijo()); }

public ArbolGeneral hermanoDer() throws ArbolVacioExcepcion {
if (esVacio())
throw new ArbolVacioExcepcion("hermanoDer: Árbol vacío");
return new NuevoArbolGeneral1<>(nodoRaiz.getHer()); }

public void setRaiz(E elemRaiz) throws ArbolVacioExcepcion {
if (esVacio()) throw new ArbolVacioExcepcion("raiz: Árbol vacío");
nodoRaiz.setElemento(elemRaiz); }

public void setHijo(ArbolGeneral hijo) throws ArbolVacioExcepcion, NullPointerException
{
if (hijo==null)
throw new NullPointerException();
if (esVacio())
throw new ArbolVacioExcepcion("setHijoIzq: Árbol vacío");
if (hijoMasIzq().esVacio()){
nodoRaiz.setHijo(((NuevoArbolGeneral1)hijo).nodoRaiz);
nodoRaiz.setUltHijo(((NuevoArbolGeneral1)hijo).nodoRaiz);
}
else {
nodoRaiz.getUltHijo().setHer(((NuevoArbolGeneral1)hijo).nodoRaiz);
nodoRaiz.setUltHijo(((NuevoArbolGeneral1)hijo).nodoRaiz); } }


public void suprimir() {
nodoRaiz = null; }

}

Related entries: