Recorrer en amplitud árbol en java


26 de Mayo del 2020

Alguien podría ayudarme a terminar este método? Consiste en recorrer un árbol usando cola. No puedo usas los típicos getLeft() y getRight(), solo cuento con getSon() y ademas

Este el cogido que tengo por ahora:
```
public void amplitud(){
NodoArbol nodo=raiz;
Cola cola = new Cola();
if(nodo!=null){
cola.encolar(nodo);
}
while(!cola.vacia()){
nodo=cola.desencolar();
System.out.println(nodo.getData()+" ");
if(nodo.getSon()!=null){
cola.encolar(nodo.getSon()); //Aquí ya no se seguir, de hecho me marca como error esta linea
...
}
}

}
```
No se si seguir por ahí o hacer :
```
public void amplitud(){
return amplitud(raiz)
}

private void amplitud(NodoArbol nodo){
Cola cola = new Cola();
if(nodo!=null){
cola.encolar(nodo);
}
while(!cola.vacia()){
nodo=cola.desencolar();
System.out.println(nodo.getData()+" ");
if(nodo.getSon()!=null){
cola.encolar(nodo.getSon()); //Aquí ya no se seguir, de hecho me marca como error esta linea
...
}
}

}
```

Además de todo ello podría usar iteradores, en concreto podría utilizar uno que va hacia delante y otro que va hacia atrás.

Si alguno tiene alguna idea de como seguir o algún consejo os lo agradecería mucho, estoy atascado y necesito conseguir este método para poder avanzar en la práctica.

Muchas gracias