0

Estructuras de Datos en C# 03: Estructuras de Datos Lineales – Arrays y Listas en C#

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ísticaArrayLista (List<T>)
TamañoFijoDinámico
Acceso por índiceO(1)O(1)
Agregar elementosNo (requiere nuevo array)Sí (con .Add())
Eliminar elementosNoSí (con .Remove())
Uso recomendadoCuando se conoce el tamaño fijoCuando 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:

  1. Ingresar una cantidad fija de productos en un array.
  2. Permitir agregar y eliminar productos en una lista.
  3. 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.

Fernando Sonego

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *