SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: rmbstyle en Martes 16 de Enero de 2007, 18:05

Título: Recorrer Matriz En Espiral
Publicado por: rmbstyle en Martes 16 de Enero de 2007, 18:05
Buenas,

He buscado por el foro pero no he encontrado exactamente lo que queria. Mi problema es que no se como ir recorriendo una matriz desde afuera hacia dentro (empezando en el M[0][0]) en el sentido de las agujas del reloj.
La cosa es que no se me ocurre nada, el recorrido deberia ser asi:

1 3 4  
5 2 7
9 8 6    

Entonces, tengo que obtener un vector con la espiral: (1,3,4,7,6,8,9,5,2).

Alguien me echa una mano?

Gracias!

Saludos
Título: Re: Recorrer Matriz En Espiral
Publicado por: lencho en Martes 16 de Enero de 2007, 19:11
podrias fijarte cuatro limites: LimDer = Cantidad de columnas, LimInf = Cantidad de filas, LimIzq = 1, LimSup = 2

Recorre con un FOR desde [1,1] hasta LimDer
           Dejpuej decrementa en 1 LimDer
Recorre con un FOR desde donde te quedaste hasta LimInf
           Dejpuej decrementa en 1 LimInf
Recorre con un FOR desde donde te quedaste hasta LimIzq
           Dejpuej Incrementa en 1 LimIzq
Recorre con un FOR desde donde te quedaste hasta LimSup
           Dejpuej Incrementa en 1 LimSup

Con eso se recorreria la primer vuelta, pero quedaria listo para la segunda vuelta.
Es la logica de tu problema.

BYTE.