Autor Tema: recorrer recursivamente arrays y matrices en java  (Leído 18885 veces)

felix

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 34
    • Ver Perfil
recorrer recursivamente arrays y matrices en java
« en: 11 de Abril 2014, 02:34 »
por fa ayuda, mi pregunta es como puedo recorrer una matriz por ejemplo de 3x3 sin usar for ni while osea de forma recursiva le intente de todo no me sale por ejemplo se tiene es ta matriz
1 2 3
2 1 4
5 3 1
lo que quiero es saber cuantas veces aparece el uno y me retornaria 3 por fa ayuda es de forma recursiva gracias de antemano.
« Última modificación: 11 de Abril 2014, 09:09 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:recorrer recursivamente arrays y matrices en java
« Respuesta #1 en: 11 de Abril 2014, 09:21 »
La recursión es algo relativamente complejo de entender, sobre todo para personas que no están habituadas a trabajar con ella. Aquí tienes un código de ejemplo sobre cómo recorrer recursivamente un array de una dimensión (un arreglo o matriz de una dimensión). Faltaría completar el recorrido de una matriz de dos dimensiones, la idea sería seguir el mismo patrón pero aplicarlo a dos dimensiones. Saludos.

Código: [Seleccionar]
import java.util.Arrays;
/*Ejemplo aprenderaprogramar.com*/
public class ejemplo {
    public static void main (String[] Args) {

        int[][]  matriz= new int[3][3];
        matriz[0][0] = 1; matriz[0][1] = 2; matriz[0][2] = 3;
        matriz[1][0] = 2; matriz[1][1] = 1; matriz[1][2] = 4;
        matriz[2][0] = 2; matriz[2][1] = 1; matriz[2][2] = 4;

        System.out.println ("Recorrido iterativo\n");
        for (int i=0; i<matriz.length; i++) {
            for (int j=0; j<matriz[0].length; j++){
                System.out.print ("    " + matriz[i][j]);   
            }
            System.out.println ("");
        }
        System.out.println ("\n\n");

        System.out.println ("Recorrido recursivo de un array simple");
        int[] dataarray = new int [7];
        dataarray[0] = 1; dataarray[1] = 5; dataarray[2] = 7; dataarray[3] = 5; dataarray[4] = 9; dataarray[5] = 5; dataarray[6] = 1;
        recorridoRecursivo(dataarray, 0, 5);
        System.out.println ("");
        recorridoRecursivo(dataarray, 0, 1);
        System.out.println ("");
        recorridoRecursivo(dataarray, 0, 7);

    }

    public static void recorridoRecursivo (int[][] matrix) {
        // FALTA EL CÓDIGO
    }

    public static void recorridoRecursivo (int[] matrix, int contador, int buscado) {

        if (matrix[matrix.length-1] == buscado) { contador = contador + 1; }

        if (matrix.length == 1) {
            System.out.println ("El numero de apariciones de " + buscado + " es: " + contador);
            System.out.print ("" + matrix[0]);

        }
        else {int[] tmp = Arrays.copyOf (matrix, (matrix.length-1));
            recorridoRecursivo(tmp, contador, buscado);
            System.out.print ("-->" + matrix[matrix.length-1]);
        }
    }
}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".