Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda para mostrar el camino de un arbol, uso Hashmap y LinkedList

Estas en el tema de Ayuda para mostrar el camino de un arbol, uso Hashmap y LinkedList en el foro de Java en Foros del Web. Muchas Gracias por entrar al POst. Le comento que hago todo el recorrido y encuentro la solución, pero ahora quiero mostrar los pasos Código PHP: ...
  #1 (permalink)  
Antiguo 16/05/2010, 17:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 46
Antigüedad: 14 años, 10 meses
Puntos: 0
Ayuda para mostrar el camino de un arbol, uso Hashmap y LinkedList

Muchas Gracias por entrar al POst.

Le comento que hago todo el recorrido y encuentro la solución, pero ahora quiero mostrar los pasos

Código PHP:
class TresporTres {
 
 
Queue<String= new LinkedList<String>();   
        
Map<String,Integermap = new HashMap<StringInteger>();
   
 
 public static 
void main(String args[]){
  
  
  
String str="012001212";    
  
TresporTres e = new TresporTres();  
  
e.add(str,0);   
  while(
e.q.peek()!=null){
   
   
e.a(e.q.peek());                        
 
e.b(e.q.peek());     
   
e.c(e.q.peek());  
   
e.d(e.q.remove());

  }
  
System.out.println("No hay solucion");
 }
 

 
void add(String str,int n){
  if(!
map.containsKey(str))//Pregunta si esta la cadena str en map
                
{
   
map.put(str,n); //Incrementa la cuenta
   
q.add(str);     //y la Agrega a q
                        
System.out.println("ADENTRO DE ADD Movimiento "+str+" Nivel "+map.get(str)+" N = "+n);
  }
 }
         

 
void a(String str){
                      
                        
   
String s str.substring(3,4)+str.substring(0,1)+str.substring(2,3)+str.substring(4,5)+str.substring(1,2)+str.substring(5);
                       
add(s,map.get(str)+1);
                        
System.out.println("Movimiento a "+str+" Valor de s " +s+" Nivel "+map.get(s);
                        
   if(
s.equals("000111222")) {
    
System.out.println("Solucion en Nivel "+map.get(s));
    
System.exit(0);

  }
 } 
la funcion b,c y d pues estan iguales solo cambian los movimientos de String s...

como pueden ver, itero y encuentro la solucion y encuentro el nivel.

Pero lo que me falta hacer es mostrar los movimientos correctos, por cierto es una busqueda por amplitud..

quiero que me diga A B A D << NIVEL 4

creo k tengo k poner otra cola, pero la verdad no tengo idea de como hacerle..

osea esta iterando y hace los 4 movimientos.. A B C D .. no encuentra la sol.. y hace
A -> A B C D si no encuentro hace B -> A B C D y asi...

pero la solucion quiere decir que hizo

A B C D

A B C D
A B C D A B C D A B C D A B C D

luego se supone que hizo

A B C D
A B C D A B C D A B C D A B C D
A B C D A B C D A B C D A B C D A B C D A B C D A B

y pues crece exponencialmente ....espero haber explicado.......

Se me ocurre meter otra cola...y pues reiniciarla ...pero no se cuando reiniciarla...

saludos y de antemano gracias

012
001
212 el programa hace cuando entra a A

002
011
212 GIRA LA MATRIX DE 2X2 SUP DERECHA.

LA FUNCION B GIRA LA MATRIZ DE 2X2 SUP IZQUIERDA

LA FUNCION C GIRA LA MATRIZ INF DERECHA
Y LA D LA INF IZQUIERA

Última edición por Fabj21; 16/05/2010 a las 17:37

Etiquetas: arboles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.