Introducción
En este módulo, aprenderemos sobre las estructuras de datos fundamentales: listas y arreglos. Estas estructuras son esenciales para almacenar y manipular colecciones de datos de manera eficiente.
Objetivos
- Comprender qué son las listas y los arreglos.
- Aprender a declarar y utilizar listas y arreglos.
- Realizar operaciones básicas con listas y arreglos.
- Conocer las diferencias entre listas y arreglos.
Conceptos Clave
Listas
Las listas son estructuras de datos que permiten almacenar una colección ordenada de elementos. En muchos lenguajes de programación, las listas son dinámicas, lo que significa que pueden cambiar de tamaño durante la ejecución del programa.
Características de las Listas
- Dinámicas: Pueden cambiar de tamaño.
- Ordenadas: Mantienen el orden de inserción de los elementos.
- Heterogéneas: Pueden contener elementos de diferentes tipos (dependiendo del lenguaje).
Ejemplo en Python
# Declaración de una lista mi_lista = [1, 2, 3, 4, 5] # Acceso a elementos print(mi_lista[0]) # Salida: 1 # Modificación de elementos mi_lista[1] = 10 print(mi_lista) # Salida: [1, 10, 3, 4, 5] # Añadir elementos mi_lista.append(6) print(mi_lista) # Salida: [1, 10, 3, 4, 5, 6] # Eliminar elementos mi_lista.remove(10) print(mi_lista) # Salida: [1, 3, 4, 5, 6]
Arreglos
Los arreglos (o arrays) son estructuras de datos que almacenan una colección de elementos del mismo tipo. A diferencia de las listas, los arreglos suelen tener un tamaño fijo.
Características de los Arreglos
- Estáticos: Tienen un tamaño fijo.
- Homogéneos: Todos los elementos deben ser del mismo tipo.
- Eficientes: Acceso rápido a los elementos mediante índices.
Ejemplo en Java
// Declaración de un arreglo int[] miArreglo = {1, 2, 3, 4, 5}; // Acceso a elementos System.out.println(miArreglo[0]); // Salida: 1 // Modificación de elementos miArreglo[1] = 10; System.out.println(Arrays.toString(miArreglo)); // Salida: [1, 10, 3, 4, 5] // Añadir elementos (no es posible, se debe crear un nuevo arreglo) int[] nuevoArreglo = new int[miArreglo.length + 1]; System.arraycopy(miArreglo, 0, nuevoArreglo, 0, miArreglo.length); nuevoArreglo[miArreglo.length] = 6; System.out.println(Arrays.toString(nuevoArreglo)); // Salida: [1, 10, 3, 4, 5, 6] // Eliminar elementos (no es posible, se debe crear un nuevo arreglo) int[] arregloReducido = new int[miArreglo.length - 1]; System.arraycopy(miArreglo, 0, arregloReducido, 0, 1); System.arraycopy(miArreglo, 2, arregloReducido, 1, miArreglo.length - 2); System.out.println(Arrays.toString(arregloReducido)); // Salida: [1, 3, 4, 5]
Comparación entre Listas y Arreglos
Característica | Listas | Arreglos |
---|---|---|
Tamaño | Dinámico | Fijo |
Tipo de datos | Heterogéneo (en algunos lenguajes) | Homogéneo |
Eficiencia | Menos eficiente en acceso aleatorio | Más eficiente en acceso aleatorio |
Flexibilidad | Alta (pueden crecer y decrecer) | Baja (tamaño fijo) |
Ejercicios Prácticos
Ejercicio 1: Manipulación de Listas
- Crea una lista con los números del 1 al 5.
- Añade el número 6 al final de la lista.
- Cambia el segundo elemento de la lista por el número 10.
- Elimina el número 3 de la lista.
- Imprime la lista resultante.
Solución
# Paso 1 mi_lista = [1, 2, 3, 4, 5] # Paso 2 mi_lista.append(6) # Paso 3 mi_lista[1] = 10 # Paso 4 mi_lista.remove(3) # Paso 5 print(mi_lista) # Salida: [1, 10, 4, 5, 6]
Ejercicio 2: Manipulación de Arreglos
- Crea un arreglo con los números del 1 al 5.
- Crea un nuevo arreglo que añada el número 6 al final del arreglo original.
- Cambia el segundo elemento del nuevo arreglo por el número 10.
- Crea un nuevo arreglo que elimine el número 3 del arreglo modificado.
- Imprime el arreglo resultante.
Solución
import java.util.Arrays; public class Main { public static void main(String[] args) { // Paso 1 int[] miArreglo = {1, 2, 3, 4, 5}; // Paso 2 int[] nuevoArreglo = new int[miArreglo.length + 1]; System.arraycopy(miArreglo, 0, nuevoArreglo, 0, miArreglo.length); nuevoArreglo[miArreglo.length] = 6; // Paso 3 nuevoArreglo[1] = 10; // Paso 4 int[] arregloReducido = new int[nuevoArreglo.length - 1]; System.arraycopy(nuevoArreglo, 0, arregloReducido, 0, 1); System.arraycopy(nuevoArreglo, 2, arregloReducido, 1, nuevoArreglo.length - 2); // Paso 5 System.out.println(Arrays.toString(arregloReducido)); // Salida: [1, 10, 4, 5, 6] } }
Conclusión
En esta lección, hemos explorado las listas y los arreglos, dos estructuras de datos fundamentales en la programación. Hemos aprendido a declarar, modificar y realizar operaciones básicas con ambas estructuras. Además, hemos comparado sus características y usos. Con estos conocimientos, estarás mejor preparado para manejar colecciones de datos en tus programas.
En la próxima lección, profundizaremos en las cadenas de caracteres, otra estructura de datos esencial en la programación.
Fundamentos de la Programación
Módulo 1: Introducción a la Programación
- ¿Qué es la programación?
- Historia de la programación
- Lenguajes de programación
- Entornos de desarrollo