Está en la página 1de 2

Apellidos: Ojeda Santos Nombre: Julie Ana Carrera: Ingeniería de Sistemas

CodSIS: 201809654

import java.util.ArrayList; public int altura() {

import java.util.List; if (vacio()) {

return 0;

public class ArbolN<T> { } else if (hijos.isEmpty()) {

public T dato; return 1;

private List<ArbolN<T>> hijos; } else {

ArbolN<T> primerHijo = hijos.get(0);

public ArbolN(T dato) { int alturaPrimerHijo = primerHijo.altura();

this.dato = dato; ArbolN<T> hijosRestantes = new ArbolN<>(null);

this.hijos = new ArrayList<>(); hijosRestantes.getHijos().addAll(hijos.subList(1,


hijos.size()));
}
int alturaHijosRestantes = hijosRestantes.altura();

return Math.max(alturaPrimerHijo,
public boolean vacio() {
alturaHijosRestantes) + 1;
return dato == null;
}
}
}

public void agregarHijo(ArbolN<T> hijo) {


public List<T> elementosEnOrden() {
hijos.add(hijo);
List<T> res = new ArrayList<>();
}
if (!vacio()) {

for (ArbolN<T> hijo : hijos) {


public List<ArbolN<T>> getHijos() {
res.addAll(hijo.elementosEnOrden());
return hijos;
}
}
res.add(dato);

}
public T getDato() {
return res;
return dato;
}
}

public void insertar(T dato) {


public void setDato(T nuevoDato) {
hijos.add(new ArbolN<T>(dato));
dato = nuevoDato;
}
}
public boolean esHoja() { ArbolN<T> hijoRestante = new ArbolN<>(null);

return hijos.isEmpty(); hijoRestante.getHijos().addAll(arbol.getHijos().subList(1,


arbol.getHijos().size()));
}
return eliminarRecursivo(hijoRestante, dato);

}
public boolean eliminar(T dato) {

if (!hijos.isEmpty()) {
public void reemplaza(T dato, T nuevoDato) {
ArbolN<T> primerHijo = hijos.get(0);
if (dato.equals(dato)) {
if (primerHijo.getDato().equals(dato)) {
dato = nuevoDato;
hijos.remove(0);
}
return true;

} else if (primerHijo.eliminar(dato)) {
if (!hijos.isEmpty()) {
return true;
ArbolN<T> primerHijo = hijos.get(0);
}
if (primerHijo.getDato().equals(dato)) {

primerHijo.reemplaza(dato, nuevoDato);
ArbolN<T> hijoRestante = new ArbolN<>(null);
} else {
hijoRestante.getHijos().addAll(hijos.subList(1,
hijos.size())); ArbolN<T> hijoRestante = new ArbolN<>(null);

hijoRestante.getHijos().addAll(hijos.subList(1,
hijos.size()));
return eliminarRecursivo(hijoRestante, dato);
hijoRestante.reemplaza(dato, nuevoDato);
}
hijos.subList(1, hijos.size()).clear();
return false;
hijos.addAll(hijoRestante.getHijos());
}
}

}
private boolean eliminarRecursivo(ArbolN<T> arbol, T
dato) { }

if (arbol.vacio()) { }

return false;

ArbolN<T> primerHijo = arbol.getHijos().get(0);

if (primerHijo.getDato().equals(dato)) {

arbol.getHijos().remove(0);

return true;

} else if (primerHijo.eliminar(dato)) {

return true;

También podría gustarte