Está en la página 1de 3

Daniel Galeano

Estructura de datos

void insertar(int padre,int hijo){ // mtodo insertar el cual se necesita dos para metros

Raiz[] p=new Raiz[1]; //se crea un nodo raz padre

Buscar(raiz, p, padre); //

if(p[0]!=null){ // se verifica que el padre o el nodo no este vaco o sea null

Raiz x=new Raiz(hijo);//se crea un nodo raz que se llama X

if(p[0].hijo==null){//si el nodo padre no tiene hijos

p[0].hijo=x;// se agrega el nodo raz x como hijo del padre

else{// si tiene hijos el padre

p[0]=p[0].hijo;// pasamos el padre al hijo

while(p[0].hermano!=null){// si el hermano no esta vaco

p[0]=p[0].hermano;// pasamos hermano a padre y seguimos buscando

p[0].hermano=x;// el hermano esta vaco entonces nodo hermano es el nodo X

else{// si no tiene padre y el nodo esta vaco

Raiz aux=raiz;// se crea un nodo auxiliar

while(aux.hermano!=null)//si el hermano de auxiliar est lleno

aux=aux.hermano;// auxiliar es el hermano

Raiz pa=new Raiz(padre);//se crea nodo padre

Raiz hi=new Raiz(hijo);/ se crea nodo hijo

pa.hijo=hi;// donde se llena el nodo con los datos enviados

aux.hermano=pa;// donde se llena el nodo con los datos enviados

}}
BUSCAR

void Buscar(Raiz padre,Raiz []puntero,int n){//mtodo buscar el cual se necesita tres parmetros

if(padre!=null){// el padre no est vaco

if(padre.info==n){//la informacin del padre es igual a la informacin que envan

puntero[0]=padre;//el puntero es igual al padres y se encontr

return ;// devolvemos el puntero con el padre

Buscar(padre.hijo, puntero, n);// se llama el mtodo para seguir buscando si los valore o la
informacin no coincide

Buscar(padre.hermano, puntero, n);// se llama el mtodo para seguir buscando si los valore
o la informacin no coincide

}}

PROFUNDIDAD

int profundidad(Raiz r) {//el mtodo profundidad el cual se le manda una variable

if(r!=null) {// si rque seria raz no est vaca

int i=1,d=1;// se crear dos variables llamadas i, d.

if(r.hijo==null&&r.hermano==null)// si y el hijo de raz esta vaco y si hermano tambin esta


vaco

return 1;// devuelve el valor de 1

if(r.hijo!=null)// si el hijo no est vaco

i=i+profundidad(r.hijo);//entonces i seria igual a i mas la profundidad del hijo

if(r.hermano!=null)// y el hermano no est vaco

d=d+profundidad(r.hermano); // entonces d seria igual a d mas la profundidad del


hermano

return i;// retornamos i

Else// si no existe raiz

return 0; }// retorna 0 ya que n o hay profundidad

NIVELES

void Niveles(Raiz x, int c,int n){// mtodo de niveles el cual pide tres valores
if(x!=null){// se pregunta si el nodo x esta vaco, si no est vaco

if(c==n){// se pregunta si c el igual n

System.out.print(x.info+" ");// si son iguales escribimos la informacin de x

Niveles(x.hijo,c+1,n);//se llama el mtodo niveles con el hijo de x y c aumentado una unidad


yn

Niveles(x.hermano,c,n);// se llama el mtodo niveles con el hermano de x y c y n

MOS- NIVEL

void Mos_nivel(){//el mtodo mos-nivel no necesita parmetros

int aux=profundidad(raiz);//se crea una variable aux que es igual a profundidad de raz

for(int i=1;i<=aux;i++){//se recorre con un for la longitud de aux

Niveles(raiz,1,i);// se enva a niveles la raz y el valor 1 y el valor de i

System.out.println();//imprime vaco

También podría gustarte