Página generada en Oct 17, 2018 7:52:46 AM

WatchStarForkSeguir @josechavarriacr

Jun 17, 2017

Array Bidimensional (Matriz)

Una matriz o array-bidimensional es una estructura de datos que se compone de dos Arrays donde sus elementos de multiplican por el tamaño de cada Array, es decir, sí tenemos 2 arrays que su estructura tiene una capacidad 6 elementos, en el caso de de una Matraz con estructura de 6x6 (Array 6 x Array 6) sus elementos totales serían el total de 36.

Una forma gráfica de expresar las matrices es la siguiente, siempre continuando con la Matriz de estructura de 6x6:

Operaciones básicas

  • Recorrido (Traverse): imprime todos los elementos del arreglo uno por uno.
  • Inserción (Insertion): agrega un elemento en el índice dado.
  • Eliminación (Deletion): elimina un elemento del índice dado.
  • Buscar (Search): busca un elemento utilizando el índice dado o el valor.
  • Actualización (Update): actualiza un elemento en el índice dado.

Ejemplo práctico

Acontinuación un ejemplo en java, primero inicializamos la Matriz que sea de tipo entero, en este caso le damos un valor de 6x6.

static Integer[][] num = new Integer[6][6];

Inserción

Se crea doble ciclo de inserción para llenar los elementos de la Matriz, en esta función se le agregan el valor número de un contador que se incrementa en 1 cada vez que entra al doble ciclo for, dando como resultado la salida descrita debajo de este código.

static void Insercion() {
        System.out.println("Insercion...");
        int count = 0;
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num.length; j++) {
                System.out.println(num[i][j] = count++);
            }
        }
    }

_salida

Insercion...
0
1
2...
33
34
35


Recorrido

Este algoritmo tiene como fin recorrer la Matriz por medio del doble ciclo for imprimiendo en consola el lugar del índice y elemento (el valor que posee dicho índice).

static void Recorrido() {
        System.out.println("\nRecorrido...");
        for (Integer[] aux : num) {
            for (Integer i : aux) {
                System.out.print(i + "\t");
            }
            System.out.println("\n");
        }
    }

_salida

Recorrido...
0    1    2    3    4    5    
6    7    8    9    10    11    
12    13    14    15    16    17    
18    19    20    21    22    23    
24    25    26    27    28    29    
30    31    32    33    34    35


Buscar

El valor a buscar es 10, se crea una pequeña función que recibe como parámetro el valor a buscar, recorremos el Array con un doble ciclo for y por medio de la condicional IF comparamos cada elemento hasta encontrar el valor del elemento a buscar, posteriormente será impreso en consola.

static void Busqueda(int var) {
        System.out.println("\nBusqueda: " + var);
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num.length; j++) {
                if (num[i][j] == var) {
                    System.out.println("fila: " + i + " columna: " + j);
                }
            }
        }
    }

_salida

Busqueda: 10
fila: 1 columna: 4


Actualización

El valor a buscar es 10 y lo cambia por 100, esta función recibe dos parámetros (valor actual y nuevo valor) que serán utilizados para buscar el valor y que este sea intercambiado por el nuevo valor, se realizará por medio del doble ciclo for para recorrer el Array, luego por medio de la condicional IF compararemos cada elemento hasta encontrar el valor del elemento deseado para posteriormente, cambiar ese elemento por el nuevo valor.

static void Actualizar(int past, int var) {
        System.out.println("\nActualizar: " + past + " a " + var);
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num.length; j++) {
                if (num[i][j] == past) {
                    num[i][j] = var;
                    System.out.println("fila: " + i + " columna: " + j);
                }
            }
        }
    }

_salida

Actualizar: 10 a 100
fila: 1 columna: 4


Eliminación

El valor a buscar y borrar es 100, dado que no podemos borrar un elemento o crear una estructura de datos de tipo Matriz sin un elemento menos, es decir, no podemos crear una Matriz de estructura de tamaño de 35 porque esta Matriz es el resultado de dos Array de tamaño 6 cada uno, y si le restamos un elemento a un Array daría como resultado una Matriz de 30, en este caso lo que haremos será encontrar el valor a borrar y lo igualaremos a null.

La función encargada de esta tarea es basicamente la misma que la función de Actualización, con la diferencia que solo necesitaremos un parámetro para buscar el elemento dentro de la Matriz y luego cambiarlo por el valor de null.

static void Eliminar(int var) {
        System.out.println("\nEliminar: " + var);
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num.length; j++) {
                if (num[i][j] == var) {
                    num[i][j] = null;
                }
            }
        }
    }

_salida

Eliminar: 100
fila: 1 columna: 4

Ejemplo anterior escrito en Java Código fuente

Espero este contenido les pueda ser muy útil, recuerden seguirme en redes sociales y si tenés cuenta en GitHub podés seguirme y/o forkear mis proyectos

#HappyCoding


comentarios proporcionados por Disqus