Matriz en estructura de datos (Operaciones)
โก Resumen inteligente
Un array en una estructura de datos almacena mรบltiples elementos del mismo tipo de datos en ubicaciones de memoria contiguas, cada una accesible mediante un รญndice. Este tutorial explica el concepto, por quรฉ son importantes los arrays y cรณmo crearlos y operar con ellos. Python, C++, y Java con ejemplos.
ยฟQuรฉ es una matriz en la estructura de datos?
An matriz es una estructura de datos para almacenar mรกs de un elemento de datos de un tipo de datos similar. Los elementos de una matriz se asignan en ubicaciones de memoria adyacentes, y estas ubicaciones se denominan elementos del array. El nรบmero total de elementos en un array es su de largo.
Se accede a cada elemento por su posiciรณn, y esta referencia se llama รญndice or subรญndice.
Concepto de matriz
Diagrama conceptual de matrices
El diagrama anterior ilustra que:
- Una matriz es un contenedor de elementos.
- Los elementos tienen un valor y un tipo de datos especรญficos, como โABCโ, VERDADERO o FALSO.
- Cada elemento tiene su propio รญndice, que se utiliza para acceder a รฉl.
Nota:
- Los elementos se almacenan en ubicaciones de memoria contiguas.
- Un รญndice siempre es menor que el nรบmero total de elementos de la matriz.
- Cualquier variable declarada como un array puede almacenar mรบltiples valores.
- Casi todos los lenguajes de programaciรณn comparten el mismo concepto de arreglos, pero difieren en la forma en que los declaran e inicializan.
- Tres elementos permanecen comunes en todas las inicializaciones: el nombre del array, los elementos y el tipo de datos de los elementos.
El siguiente diagrama muestra la sintaxis para declarar un matriz en Python y C++, lo que demuestra que el concepto se mantiene igual aunque la sintaxis varรญe ligeramente entre los idiomas.
Comprender la sintaxis de las matrices
- Nombre de la matriz: necesario para facilitar la consulta de la colecciรณn de elementos.
- Tipo de datos: Necesario para la verificaciรณn de tipos y la integridad de los datos.
- Elementos: los valores de datos presentes en el array.
ยฟPor quรฉ necesitamos arreglos?
- Los arrays son ideales para almacenar mรบltiples valores en una sola variable.
- Procesan muchos valores de forma fรกcil y rรกpida.
- Ordenar y buscar valores es mรกs fรกcil con matrices.
Creando una matriz en Python
In PythonLos arreglos se diferencian de las listas: una lista puede contener elementos de diferentes tipos de datos, mientras que un arreglo solo puede contener elementos del mismo tipo de datos. Python tiene un mรณdulo separado para manejar matrices, llamado array, que debes importar antes de usarlo.
Nota: El array debe contener nรบmeros reales, como enteros y nรบmeros de coma flotante; no se permiten cadenas de texto.
El siguiente cรณdigo crea una matriz de enteros en Python para almacenar saldos de cuentas:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Formas de declarar una matriz en Python
Puedes declarar una matriz en Python al inicializarlo utilizando la siguiente sintaxis:
arrayName = array.array(typecode, [array_items])
Sintaxis de matriz en Python
- Identificador: Especifique un nombre como lo hace habitualmente con las variables.
- Mรณdulos: Python Tiene un mรณdulo especial llamado โarrayโ que debes importar primero.
- Mรฉtodo: El mรณdulo array tiene un mรฉtodo para inicializar el array, que toma dos argumentos: el cรณdigo de tipo y los elementos.
- Escriba el cรณdigo: especifique el tipo de datos utilizando los cรณdigos de tipo disponibles (consulte la tabla a continuaciรณn).
- Elementos: especifique los elementos de la matriz entre corchetes, por ejemplo [130, 450, 103].
La tabla que aparece a continuaciรณn enumera los cรณdigos de tipo disponibles para los tipos de datos admitidos.
| Cรณdigo de tipo | Tipo C | Python Tipo | Tamaรฑo mรญnimo (bytes) |
|---|---|---|---|
| 'segundo' | char firmado | int | 1 |
| 'B' | char sin firmar | int | 1 |
| 'tu' | Py_UNICODE | Personaje Unicode | 2 |
| 'h' | corto firmado | int | 2 |
| 'H' | unsigned short | int | 2 |
| 'yo' | firmado int | int | 2 |
| 'YO' | int sin firmar | int | 2 |
| 'l' | firmado largo | int | 4 |
| 'L' | largo sin firmar | int | 4 |
| 'F' | flotar | flotar | 4 |
| 're' | doble | flotar | 8 |
ยฟCรณmo acceder a un valor especรญfico de una matriz?
Puedes acceder a cualquier elemento de la matriz utilizando su รญndice.
Sintaxis:
arrayName[indexNum]
Ejemplo:
balance[1]
Acceder a un elemento de matriz
Aquรญ, accedimos al segundo valor del array usando el รญndice 1. El resultado es 200, que es el segundo valor del array balance.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Salida:
200
Formaciรณn Operaciones en Python
El Python El mรณdulo array proporciona funciones independientes para operaciones con arrays. Se trata de mรฉtodos destructivos, lo que significa que la modificaciรณn se guarda en la variable del array.
recuadro
Esta operaciรณn inserta uno o mรกs elementos en una matriz al principio, al final o en cualquier รญndice dado. Requiere dos argumentos: รญndice y valor.
arrayName.insert(index, value)
Ejemplo: Para insertar un nuevo valor justo despuรฉs del รญndice 1 (el valor 200), haga referencia al รญndice 2 en el mรฉtodo de inserciรณn.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Salida:
array('i', [300, 200, 150, 100])
Eliminar
Esta operaciรณn elimina un elemento de una matriz por su valor, aceptando un รบnico argumento. Tras su ejecuciรณn, los elementos se reordenan y se reasignan los รญndices.
arrayName.remove(value)
Ejemplo:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Salida:
array('i', [300, 200, 100])
Buscar
Esta operaciรณn busca un elemento por valor y devuelve su รญndice. Es un mรฉtodo no destructivo, por lo que no modifica los valores del array.
arrayName.index(value)
Ejemplo:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Salida:
2
Actualizar
La actualizaciรณn reemplaza el valor existente en un รญndice dado utilizando un operador de asignaciรณn simple.Python Los arreglos no tienen una update() mรฉtodo.)
arrayName[index] = value
Ejemplo: Para reemplazar 150 (en el รญndice 2) por 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Salida:
array('i', [300, 200, 145, 100])
Recorrer
Puedes atravesar una Python matriz usando un bucle:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Salida:
300
200
100
Creando una matriz en C++
C++ es mรกs flexible que Python al crear matrices. Puedes crear C++ arrays de tres maneras. El siguiente cรณdigo crea una matriz de enteros en C++ para almacenar saldos de cuentas:
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
for (int i = 0; i < 3; i++)
{
cout << "value of i: " << balance[i] << endl;
}
return 0;
}
Formas de declarar una matriz en C++
Puedes declarar un array de tres maneras, dependiendo de los requisitos de tu programa.
Declaraciรณn por tamaรฑo:
dataType arrayName[arraySize]; // e.g. int balance[3];
Declaraciรณn con elementos de matriz รบnicamente:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Declaraciรณn por talla y artรญculos:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Cรณmo acceder a un valor especรญfico de una matriz en C++?
Accediendo a un elemento de matriz
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Salida:
200
Formaciรณn Operaciones en C++
Quitar 'Me gusta' Pythonen C++ Debes programar tรบ mismo la lรณgica para las operaciones de inserciรณn, eliminaciรณn, bรบsqueda, actualizaciรณn y recorrido.
recuadro
La lรณgica de inserciรณn es la siguiente: recorrer los elementos del array, desplazarlos a un รญndice mayor y, a continuaciรณn, aรฑadir un nuevo elemento en dicho รญndice. El ejemplo que se muestra a continuaciรณn tiene cinco elementos e inserta el valor 150 justo despuรฉs del valor 200.
#include <iostream>
#include <stdio.h>
main() {
int pos = 2;
int size = 4;
int balance[] = {300, 200, 100, 50, 0};
printf("BEFORE INSERT:\n");
for(int i = 0; i < 5; i++) {
printf("%d\n", balance[i]);
}
/* SHIFT ITEMS TO A GREATER INDEX */
for(int i = size; i >= pos; i--) {
balance[i+1] = balance[i];
}
/* INSERT VALUE AT THE DESIRED INDEX */
balance[pos] = 150;
printf("AFTER INSERT:\n");
for(int i = 0; i < 6; i++) {
printf("%d\n", balance[i]);
}
}
Formaciรณn Operaciones en Java
Vamos a crear un programa en Java que acepta el tamaรฑo y los valores de los elementos del array por parte del usuario.
import java.util.Scanner;
public class AddElements {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the array");
int n = sc.nextInt();
int arr[] = new int[n];
System.out.println("Enter Elements in the array");
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
System.out.println("Elements in the array");
for(int j = 0; j < n; j++) {
System.out.print(arr[j] + " ");
}
}
}
Modificar un elemento en un Java Formaciรณn
Actualizar un elemento por su รญndice.
import java.util.Scanner;
public class ModifyElement {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
int length = arr.length;
Scanner sc = new Scanner(System.in);
System.out.println("Array Elements Before modify");
for(int i = 0; i < length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println("\nEnter the position to change");
int pos = sc.nextInt();
System.out.println("Enter the value");
int val = sc.nextInt();
arr[pos] = val;
System.out.println("Array Elements After modify");
for(int j = 0; j < length; j++) {
System.out.print(arr[j] + " ");
}
}
}
Elementos de acceso en un Java Formaciรณn
Imprime todos los elementos del array recorriรฉndolo.
public class AccessElements {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
int length = arr.length;
System.out.println("Array Elements are:-");
for(int i = 0; i < length; i++) {
System.out.print(arr[i] + " ");
}
}
}






