Está en la página 1de 7

1. Realizar el método que cuente los nodos del árbol sin agregar atributos al árbol.

public static int cunetaNodo(Grupo nodo){

int contador=1;

if (nodo.getIzq()!=null) {

contador+= cunetaNodo(nodo.getIzq());

if (nodo.getDer()!=null) {

contador+=cunetaNodo(nodo.getDer());

return contador;

2. Realiza el método recursivo para buscar un nodo por su clave(numérica), valor por el que
el árbol está ordenado
public void buscarCod(Almacen nodo, int codA) {
//Almacen aux = raiz;
if (nodo != null) {
if (codA == nodo.getCodAlm()) {
System.out.println("Código de Almacen " + nodo.getCodAlm() + "\tNombre: " +
nodo.getNomAlm());
}
}
buscarCod(nodo.getDer(), codA);
buscarCod(nodo.getIzq(), codA);
//aux = aux.getDer();
}

3. Realiza el método recursivo para buscar un nodo por su clave alfabética, valor por el que
el árbol No está ordenado.

public void buscarNom(Almacen nodo, String nom) {


if (nodo != null) {
if (nodo.getNomAlm().equals(nom)) {
System.out.println("Codigo de Almacen: " + nodo.getCodAlm() + " Nombre: " +
nodo.getNomAlm());
}
buscarNom(nodo.getIzq(), nom);
buscarNom(nodo.getDer(), nom);
}

}
4.- Escribe
el método para eliminar un nodo que tiene un solo hijo. Recibir los parámetros
necesarios
public Grupo eliminarunhijo(int cod){

Grupo aux = raiz, padre = raiz;

while(aux!=null && cod!=aux.getCodGpo())

padre = aux;

if(aux.getDer()==null || aux.getIzq()==null)

if(aux==raiz)

if(aux.getIzq()!=null)

raiz=aux.getIzq();

else

raiz = aux.getDer();

else

if(padre.getIzq()==aux)

if(aux.getIzq()!=null)

padre.setIzq(aux.getIzq());

else

padre.setIzq(aux.getDer());

else

if(aux.getIzq()!=null)

padre.setDer(aux.getIzq());

else

padre.setDer(aux.getDer());

return aux;

}
5. Escribe el código recursivo para insertar un nodo en el árbol.

public void insertarrecu(Grupo nodo){


{
if(vacio())
setRaiz(nodo);
else
{
Grupo aux = getRaiz();
do{
if(nodo.getCodGpo()<aux.getCodGpo())
if(aux.getIzq()==null)
insertarrecu(nodo.getIzq());
else
aux=aux.getIzq();
else
if(aux.getDer()==null)
insertarrecu(nodo.getDer());
else
aux=aux.getDer();
}while(aux.getIzq()!=nodo && aux.getDer()!=nodo);
}
}
}

6.- Escribe el método para contar los nodos del árbol cuya clave sea número par.

public int contarP (Almacen nodo, int c){


if(nodo != null){
if(nodo.getCodAlm() % 2 ==0)
c++;
c=contarP(nodo.getIzq(),c);
c=contarP(nodo.getDer(),c);
}
return c;
}
7.- Dos árboles son equivalentes si tienen la misma estructura (cada nodo tiene los mismos hijos
en un árbol y en otro) y el mismo contenido. Escribir el método que determine si dos árboles con
datos numéricos dados son equivalentes.
public boolean identicos(Nodo n, Nodo n1) {
if (n == null && n1 == null) {
return true;
}
if (n != null && n1 != null) {
return ((n.getNo() == n1.getNo()) && identicos(n.getIzq(), n1.getIzq()) && identicos(n.getDer(), n1.getDer()));
}
return false;
}
8.- Escribe el método que cuente los nodos intermedios de un árbol (Nodo intermedio es el que no
es raíz, ni hoja).
public int conInt(Almacen almacen){

if(almacen != null){

if(almacen.getIzq() != null || almacen.getDer() != null ){

return conInt(almacen.getIzq())+conInt(almacen.getDer())+1;

return 0;

9.- Escribir el método que reciba un nodo del árbol y calcule su número de nivel. No alterar la
estructura del árbol.
public int nivel(Nodo n, int niv, int no) {
if (n == null) {
return 0;
}
if (n.getNo() == no) {
return niv;
}
int nivelD = nivel(n.getIzq(), niv + 1, no);
if (nivelD != 0) {
return nivelD;
}
nivelD = nivel(n.getDer(), niv + 1, no);
return nivelD;
}

public int obtenerNiv(Nodo n, int no) {


return nivel(n, 1, no);
}

10.-En un árbol cuya información es nombre y promedio del alumno, y está ordenado por
nombre. Escribir el método que retorne el promedio máximo de los alumnos.
11.-En un árbol que almacena datos de un grupo y cuyo nodo tiene de información
únicamente el nombre del alumno y 8 calificaciones dadas en un arreglo. Escribir el
método que calcule el promedio general del grupo.

12.-Un árbol binario es completo si todos sus nodos, excepto las hojas, tienen dos hijos.
Escribir el método que determine si un árbol es completo.

public boolean completo(Nodo n) {

if (n != null) {

if (n.getDer() == null && n.getIzq() == null) {

return true;

if (n.getDer() != null && n.getIzq() != null) {

return completo(n.getDer()) && completo(n.getIzq());

return false;

13.-Escribir el método que despliegue la información de todos los nodos hoja y retorne el
total de ellos.

public static int NodosHoja(Almacen nodo, int cant) {


if (nodo != null) {
if (nodo.getIzq() == null && nodo.getDer() == null) {
System.out.println("Código de Almacen " + nodo.getCodAlm() + "\tNombre: " +
nodo.getNomAlm());
cant++;

}
cant = NodosHoja(nodo.getIzq(),cant);
cant = NodosHoja(nodo.getDer(),cant);
}
return cant;
}
14.-En un árbol cuyo nodo tiene como información un número, realizar el método que
despliegue solo los nodos cuya información sea par.

public void inordenPar(Grupo nodo)

if (nodo != null )

if (nodo.getCodGpo()% 2 == 0)

inordenPar(nodo.getIzq());

System.out.println("Código de grupo: \"" + nodo.getCodGpo() + "\"\nNumero: " +


nodo.getMateria() + "\nProfesor: " + nodo.getProf());

inordenPar(nodo.getDer());

}else

inordenPar(nodo.getDer());

inordenPar(nodo.getIzq());

}
15.-Escribir los atributos y el método insertar de la clase árbol en la que se obtenga la
estructura de la imagen siguiente:
public void insertar(Grupo2 nodo) {
Grupo2 aux = getRaiz();

if (vacio() {

setRaiz(nodo);

}else{

aux=raiz;

do{

if (nodo.getCodGpo()<aux.getCodGpo())

if (aux.getIzq()==null)

aux.setIzq(nodo);

nodo.setPadre(aux);

}else{

aux = aux.getIzq();

}else {

if (aux.getDer() == null)

aux.setDer(nodo);//Inserción

nodo.setPadre(aux);

} else

aux = aux.getDer();

}while(aux.getIzq() != nodo && aux.getDer() != nodo);

También podría gustarte