Estructuras de datos y algoritmos: matrices

Array es un contenedor que puede contener un número fijo de elementos y estos elementos deben ser del mismo tipo. La mayoría de las estructuras de datos utilizan matrices para implementar sus algoritmos. A continuación se muestran los términos importantes para comprender el concepto de matriz.

  • Element - Cada elemento almacenado en una matriz se denomina elemento.

  • Index - Cada ubicación de un elemento en una matriz tiene un índice numérico, que se utiliza para identificar el elemento.

Representación de matriz

Las matrices se pueden declarar de varias formas en diferentes idiomas. Por ejemplo, tomemos la declaración de matriz de C.

Las matrices se pueden declarar de varias formas en diferentes idiomas. Por ejemplo, tomemos la declaración de matriz de C.

Según la ilustración anterior, los siguientes son los puntos importantes que deben considerarse.

  • El índice comienza con 0.

  • La longitud de la matriz es 10, lo que significa que puede almacenar 10 elementos.

  • Se puede acceder a cada elemento a través de su índice. Por ejemplo, podemos buscar un elemento en el índice 6 como 9.

Operaciones básicas

A continuación se muestran las operaciones básicas admitidas por una matriz.

  • Traverse - imprime todos los elementos de la matriz uno por uno.

  • Insertion - Agrega un elemento en el índice dado.

  • Deletion - Elimina un elemento en el índice dado.

  • Search - Busca un elemento usando el índice dado o por el valor.

  • Update - Actualiza un elemento en el índice dado.

En C, cuando una matriz se inicializa con tamaño, asigna valores predeterminados a sus elementos en el siguiente orden.

Tipo de datos Valor por defecto
bool falso
carbonizarse 0
En t 0
flotador 0.0
doble 0.0f
vacío
wchar_t 0

Operación transversal

Esta operación consiste en atravesar los elementos de una matriz.

Ejemplo

El siguiente programa recorre e imprime los elementos de una matriz:

#include <stdio.h>
main() {
   int LA[] = {1,3,5,7,8};
   int item = 10, k = 3, n = 5;
   int i = 0, j = n;   
   printf("The original array elements are :\n");
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Cuando compilamos y ejecutamos el programa anterior, produce el siguiente resultado:

Salida

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8

Operación de inserción

La operación de inserción consiste en insertar uno o más elementos de datos en una matriz. Según el requisito, se puede agregar un nuevo elemento al principio, al final o en cualquier índice de matriz dado.

Aquí, vemos una implementación práctica de la operación de inserción, donde agregamos datos al final de la matriz:

Ejemplo

A continuación se muestra la implementación del algoritmo anterior:

#include <stdio.h>

main() {
   int LA[] = {1,3,5,7,8};
   int item = 10, k = 3, n = 5;
   int i = 0, j = n;
   
   printf("The original array elements are :\n");

   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }

   n = n + 1;
	
   while( j >= k) {
      LA[j+1] = LA[j];
      j = j - 1;
   }

   LA[k] = item;

   printf("The array elements after insertion :\n");

   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Cuando compilamos y ejecutamos el programa anterior, produce el siguiente resultado:

Salida

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after insertion :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 10 
LA[4] = 7 
LA[5] = 8

Para otras variaciones de la operación de inserción de matrices, haga clic aquí

Operación de eliminación

La eliminación se refiere a eliminar un elemento existente de la matriz y reorganizar todos los elementos de una matriz.

Algoritmo

Considerar LA es una matriz lineal con N elementos y K es un número entero positivo tal que K<=N. A continuación se muestra el algoritmo para eliminar un elemento disponible en la posición K- ésima de LA.

1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop

Ejemplo

A continuación se muestra la implementación del algoritmo anterior:

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5;
   int i, j;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   j = k;
	
   while( j < n) {
      LA[j-1] = LA[j];
      j = j + 1;
   }
	
   n = n -1;
   
   printf("The array elements after deletion :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Cuando compilamos y ejecutamos el programa anterior, produce el siguiente resultado:

Salida

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after deletion :
LA[0] = 1 
LA[1] = 3 
LA[2] = 7 
LA[3] = 8

Operación de búsqueda

Puede realizar una búsqueda de un elemento de matriz según su valor o su índice.

Algoritmo

Considerar LA es una matriz lineal con N elementos y K es un número entero positivo tal que K<=N. A continuación se muestra el algoritmo para encontrar un elemento con un valor de ARTÍCULO mediante la búsqueda secuencial.

1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. IF LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRINT J, ITEM
7. Stop

Ejemplo

A continuación se muestra la implementación del algoritmo anterior:

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int item = 5, n = 5;
   int i = 0, j = 0;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   while( j < n){
      if( LA[j] == item ) {
         break;
      }
		
      j = j + 1;
   }
	
   printf("Found element %d at position %d\n", item, j+1);
}

Cuando compilamos y ejecutamos el programa anterior, produce el siguiente resultado:

Salida

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
Found element 5 at position 3

Operación de actualización

La operación de actualización se refiere a actualizar un elemento existente de la matriz en un índice determinado.

Algoritmo

Considerar LA es una matriz lineal con N elementos y K es un número entero positivo tal que K<=N. A continuación se muestra el algoritmo para actualizar un elemento disponible en la posición K- ésima de LA.

1. Start
2. Set LA[K-1] = ITEM
3. Stop

Ejemplo

A continuación se muestra la implementación del algoritmo anterior:

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5, item = 10;
   int i, j;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   LA[k-1] = item;

   printf("The array elements after updation :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Cuando compilamos y ejecutamos el programa anterior, produce el siguiente resultado:

Salida

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after updation :
LA[0] = 1 
LA[1] = 3 
LA[2] = 10 
LA[3] = 7 
LA[4] = 8