Introducción a la clase
En esta clase exploraremos dos de las estructuras de datos más utilizadas en la programación: Arrays y Listas en C#. Aprenderemos sus características, ventajas, desventajas y cuándo es mejor utilizar una sobre la otra. Además, implementaremos ejemplos prácticos para reforzar su uso.
¿Qué obtendrás de esta clase?
- Comprender la diferencia entre arrays y listas en C#.
- Aprender cuándo usar cada estructura según el problema a resolver.
- Implementar operaciones básicas con arrays y listas.
- Analizar la eficiencia de cada estructura en términos de rendimiento.
Estructuras de Datos Lineales
Las estructuras de datos lineales organizan sus elementos en una secuencia, donde cada elemento tiene un único sucesor y predecesor. Arrays y listas son los ejemplos más comunes de este tipo de estructuras.
Arrays en C#
Un array es una colección de elementos del mismo tipo almacenados en ubicaciones contiguas de memoria.
Características de los Arrays
- Tamaño fijo: Debe definirse al momento de la declaración.
- Acceso rápido: Permite acceder a cualquier elemento en O(1) utilizando su índice.
- No permite modificaciones dinámicas: No se puede agregar o eliminar elementos sin crear un nuevo array.
Declaración e inicialización de un Array en C#
int[] numeros = new int[5]; // Array de tamaño fijo con valores predeterminados en 0
int[] edades = { 25, 30, 35, 40 }; // Array con valores iniciales
Acceso y modificación de elementos
numeros[0] = 10; // Asigna 10 a la primera posición
Console.WriteLine(numeros[0]); // Imprime 10
Recorrido de un Array con un bucle for
for (int i = 0; i < edades.Length; i++)
{
Console.WriteLine("Edad: " + edades[i]);
}
Listas en C#
Una lista (List<T>) es una colección dinámica que permite agregar, eliminar y modificar elementos sin necesidad de definir un tamaño fijo.
Características de las Listas
- Tamaño dinámico: Se expande automáticamente cuando se agregan elementos.
- Acceso mediante índice: Igual que los arrays, permite acceso en O(1).
- Mayor flexibilidad: Métodos para agregar, eliminar y buscar elementos.
Declaración e inicialización de una Lista en C#
List<int> numerosLista = new List<int>(); // Lista vacía
List<int> edadesLista = new List<int> { 25, 30, 35, 40 }; // Lista con valores iniciales
Agregar y eliminar elementos en una Lista
numerosLista.Add(10); // Agrega 10 a la lista
numerosLista.Remove(10); // Elimina el número 10
Recorrer una Lista con un bucle foreach
foreach (int edad in edadesLista)
{
Console.WriteLine("Edad: " + edad);
}
Comparación entre Arrays y Listas
Característica | Array | Lista (List<T>) |
---|---|---|
Tamaño | Fijo | Dinámico |
Acceso por índice | O(1) | O(1) |
Agregar elementos | No (requiere nuevo array) | Sí (con .Add()) |
Eliminar elementos | No | Sí (con .Remove()) |
Uso recomendado | Cuando se conoce el tamaño fijo | Cuando el tamaño varía |
Caso de uso real
Un sistema de gestión de empleados puede usar un array si la cantidad de empleados es fija y conocida de antemano. Sin embargo, si la empresa está en constante crecimiento, una lista es más conveniente.
Ejemplo en C#: Gestión de empleados con Listas
using System;
using System.Collections.Generic;
class Empresa
{
static void Main()
{
List<string> empleados = new List<string> { "Ana", "Carlos", "Pedro" };
Console.WriteLine("Lista de empleados:");
foreach (var empleado in empleados)
{
Console.WriteLine(empleado);
}
Console.WriteLine("Ingrese un nuevo empleado:");
string nuevoEmpleado = Console.ReadLine();
empleados.Add(nuevoEmpleado);
Console.WriteLine("Lista actualizada de empleados:");
foreach (var empleado in empleados)
{
Console.WriteLine(empleado);
}
}
}
Este programa permite agregar nuevos empleados sin necesidad de definir un tamaño fijo, mostrando la flexibilidad de las listas.
Desafío práctico
Ejercicio: Implementa un programa en C# que permita al usuario:
- Ingresar una cantidad fija de productos en un array.
- Permitir agregar y eliminar productos en una lista.
- Mostrar todos los productos almacenados.
Resumen de la clase
- Arrays: Colecciones de tamaño fijo, eficientes en acceso por índice pero inflexibles en modificación.
- Listas: Colecciones dinámicas que permiten agregar y eliminar elementos fácilmente.
- Comparación entre ambas estructuras para determinar cuándo usar cada una.
- Caso de uso real aplicado a la gestión de empleados.
Próxima clase: Pilas y Colas – Implementación y Aplicaciones Reales
En la siguiente clase aprenderemos sobre Pilas y Colas, dos estructuras de datos lineales esenciales para gestionar datos de manera ordenada en escenarios como deshacer acciones, manejar tareas en cola y navegación web.