elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Metodo de amplitud Nodos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Metodo de amplitud Nodos  (Leído 389 veces)
Ghio97

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Metodo de amplitud Nodos
« en: 16 Noviembre 2019, 18:05 pm »

Hola tengo un problema.
Estoy creando tres clases clases (Arbol,  Cola y Main), Arbol tienes el metodo insertar(que recibe como parametro una cadena y ese parametro se convierte en el parametro de un Nodo) dentro de insertar llamo al metodo insert que es un metodo de la clase cola(insert recibe como parametro un nodo).
En la clase cola deberia meter en una cola los nodos insertados para depues imprimirlos , lo que busco al final es hacer el rocorrido por ampilitud utilizando la clase cola y los nodos insertados pero estoy atorado en insertar los nodos y mostrarlos
alguien me podria ayudar porfavor?
Código:
package estructura;

public class Arbol {
Nodo raiz;


public Arbol() {
raiz=null;
}


//Insertar

public void insertar(String i) {
Cola p=new Cola();
Nodo n=new Nodo(i);
p.inser(n);

if(raiz==null) {
raiz=n;
}else {
Nodo aux=raiz;
while(aux!=null) {
n.padre=aux;
if(n.llave.compareTo(aux.llave)>0) {
aux=aux.der;
}else {
aux=aux.izq;
}
}
if(n.llave.compareTo(n.padre.llave)<0) {
n.padre.izq=n;

}else {
n.padre.der=n;
}
}

}

/*public void recorrerAmp(Nodo n) {
Cola cola,colaux;
Nodo aux;
for(int i=0;i<49;i++) {

}

if (n != null) //SI EL ÁRBOL CONTIENE NODOS...
{
cola=new Cola(); //SE INSTANCIA EL OBJETO COLA
colaux=new Cola(); //SE INSTANCIA EL OBJETO COLAAUX
cola.push(n); //SE INSERTA EL NODOARBOL "A" (RAIZ) COMO PRIMER NODO EN LA COLA
while (cola.colavacia()!=1) //MIENTRAS HAYAN ELEMENTOS EN LA COLA...
{
colaux.push(aux=(Nodo) cola.pop()); /*EL ELEMENTO EXTRAIDO DE LA COLA PRINCIPAL ES ASIGNADO
A AUX Y A SU VEZ INSERTADO EN LA COLA AUXILIAR*/
/*if (aux.izq != null) //SI EL HIJO IZQUIERDO DEL NODO ACTUAL EXISTE
{
cola.push(aux.izq); //SE INSERTA ESE HIJO COMO ELEMENTO SIGUIENTE EN LA COLA
}
if (aux.der!= null) //SI EL HIJO DERECHO DEL NODO ACTUAL EXISTE
{
cola.push(aux.der); //SE INSERTA ESE HIJO COMO ELEMENTO SIGUIENTE EN LA COLA
}
}
colaux.imprime(); //POR ÚLTIMO SE IMPRIME LA COLA AUXILIAR
}

} */




//metodo en PREORDEN

public void recorrerPre(Nodo n) {
if(n!=null) {
System.out.println(n.llave);
recorrerPre(n.izq);
recorrerPre(n.der);
}
}



//metodo en ORDEN

public void recorrerOrd(Nodo n) {
if(n!=null) {
recorrerOrd(n.izq);
System.out.println(n.llave);
recorrerOrd(n.der);
}
}

//metodo en PostOrden
public void recorrerPos(Nodo n) {

if(n!=null) {
recorrerPos(n.izq);
recorrerPos(n.der);
System.out.println(n.llave);
}
}

public class Nodo{
public Nodo padre;
public Nodo der,izq;
public String llave;
public Nodo siguiente;



public Nodo(String indice) {
llave=indice;
der=null;
izq=null;
padre=null;
}

}






}
  Esta es mi clase Arbol

****************************************************

Código:
package estructura;

public class Cola extends Arbol {
Nodo frente,fin;


public Cola () {
frente=null;
fin=null;
}

/*public int colavacia() {
if(frente==null&&fin==null) {
return 1;
}return 0;
}*/


public void inser(Nodo c ) {
Nodo s=new Nodo(c.llave);
if(frente==null) {
frente=s;
frente.siguiente=null;
fin=s;
}else {
fin=s;
s.siguiente=null;
fin=s;
}
}
// pop
public void pop() {

}

public void imprime() {

    Nodo k=new Nodo();
k=frente;
if(frente!=null) {
while(k!=null) {
System.out.println(" "+k.llave);
k=k.siguiente;
}
}else {
System.out.println("La cola se encuentra vacia1");
}

}
}
Esta es mi clase Cola
*******************************************************************


Código:
package estructura;

public class Main extends Arbol {

public static void main(String[] args) {
Arbol arbol=new Arbol();
Cola c1=new Cola();
arbol.insertar("maria");
arbol.insertar("maria");
arbol.insertar("oso");
arbol.insertar("do");
arbol.insertar("p");
arbol.insertar("maria");

System.out.println("****Recorrido en Pre-Orden****");
arbol.recorrerPre(arbol.raiz);

System.out.println("****Recorrido en Orden****");
arbol.recorrerOrd(arbol.raiz);

System.out.println("****Recorrido en Post-Orden****");
arbol.recorrerPos(arbol.raiz);

System.out.println("****Recorrido en Amplitud****");
c1.imprime();

       
        System.out.println(" ");
        System.out.println("****Recorrido en profundidad**** ");

}     
}

Este es mi Main


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] invocar metodo desde metodo.
Scripting
Hesp 2 5,918 Último mensaje 8 Marzo 2009, 00:38 am
por Hesp
busqueda por amplitud
Java
.rn3w. 1 1,760 Último mensaje 22 Octubre 2012, 23:48 pm
por .rn3w.
Error en busqueda en amplitud con python
Scripting
falconez 1 1,383 Último mensaje 4 Junio 2015, 20:34 pm
por tincopasan
ayuda con recorrido de grafos en amplitud y profundidad
Programación C/C++
Beginner Web 0 551 Último mensaje 10 Noviembre 2018, 17:17 pm
por Beginner Web
Detector de silencio o medidor de amplitud de microfono
Scripting
Juancfernandez 2 4,471 Último mensaje 4 Noviembre 2019, 20:14 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines