• WORD
  • FORMATO AUTOMATICO Y ESTILOS
  • INSERTAR CUADRO DE TEXTO Y ECUACION
  • REFERENCIASTABLA DE CONTENIDO Y BIBLIOGRAFIA
  • Ir a Prácticas
  • EXCEL
  • FORMULAS I y II
  • TABLAS Y GRAFICOS DINAMICOS
  • SUBTOTALES Y BASE DE DATOS
  • MACROS
  • Ir a Prácticas
  • AUTOCAD
  • 2D:DIBUJO Y ACOTAR
  • INSERTAR BLOQUES Y PLOT
  • 3D: MODELADO Y EDICION DE SOLIDOS
  • RENDER Y ANIMACIONES
  • Ir a Prácticas

viernes, 20 de febrero de 2026

C# LISTAS

LISTAS:

Una lista en C# es una colección dinámica de elementos del mismo tipo que crece automáticamente, a diferencia de los arrays que tienen tamaño fijo.

aracterísticas Principales

  • Tipo genérico: List<string>, List<int>, List<Alumno>
  • Espacio de nombres: using System.Collections.Generic;
  • Acceso por índice: lista[0], lista[1]
  • Propiedades: lista.Count (número de elementos)

CODIGO:

using System;

using System.Collections.Generic;

 

namespace Ejemplo

{

    internal class Program

    {

        static void Main(string[] args)

        {

            List<string> alumnos = new List<string>();  // Sin espacios extra

            alumnos.Add("pepe");

            alumnos.Add("joaquin");

            alumnos.Add("pepe");

            alumnos.Add("kimberly");

            alumnos.Add("eusebio");

            alumnos.Remove("eusebio");

            alumnos.Insert(1, "paola");

            Console.WriteLine(alumnos[0]);

            Console.WriteLine(alumnos.Count);

            Console.WriteLine(alumnos.IndexOf("joaquin"));

            Console.WriteLine(alumnos.LastIndexOf("pepe"));

            Console.WriteLine(alumnos.Contains("joaquin"));

            alumnos.Sort();

            alumnos.Reverse();

            //alumnos.Clear();

            string[] coleagiales=alumnos.ToArray();

 

 

 

            foreach (string alumn in alumnos)

            {

                Console.WriteLine(alumn);

            }

            Console.ReadKey();

            //ingreso de nombres:

            List<string> LIST2 = new List<string>();  // Tu lista LIST 2

            string dato;

 

            Console.WriteLine("=== LIST 2 ===");

            Console.Write("¿Cuántos datos ingresaras? ");

            int cantidad = int.Parse(Console.ReadLine());

 

            // Ingresar datos a LIST 2

            for (int i = 0; i < cantidad; i++)

            {

                Console.Write($"Dato {i + 1}: ");

                dato = Console.ReadLine();

                LIST2.Add(dato);  // Agregar a LIST 2

            }

 

            // Mostrar LIST 2

            Console.WriteLine("\nContenido de LIST 2:");

            for (int i = 0; i < LIST2.Count; i++)

            {

                Console.WriteLine($"[{i}] {LIST2[i]}");

            }

            Console.ReadKey();

        }

    }

}

   

Listas enlazadas

CODIGO:

using System;

 

// Clase Nodo que representa cada elemento de la lista

public class Nodo

{

    public int dato;        // Dato almacenado en el nodo

    public Nodo siguiente;  // Referencia al siguiente nodo

 

    public Nodo(int dato)

    {

        this.dato = dato;

        this.siguiente = null;

    }

}

 

// Clase ListaEnlazadaSimple que maneja todas las operaciones

public class ListaEnlazadaSimple

{

    private Nodo inicio;    // Puntero al primer nodo

 

    public ListaEnlazadaSimple()

    {

        inicio = null;

    }

 

    // 1. Insertar al inicio

    public void InsertarInicio(int dato)

    {

        Nodo nuevo = new Nodo(dato);

        nuevo.siguiente = inicio;

        inicio = nuevo;

    }

 

    // 2. Insertar al final

    public void InsertarFinal(int dato)

    {

        Nodo nuevo = new Nodo(dato);

 

        if (inicio == null)

        {

            inicio = nuevo;

            return;

        }

 

        Nodo actual = inicio;

        while (actual.siguiente != null)

        {

            actual = actual.siguiente;

        }

        actual.siguiente = nuevo;

    }

 

    // 3. Buscar un elemento

    public bool Buscar(int dato)

    {

        Nodo actual = inicio;

        while (actual != null)

        {

            if (actual.dato == dato)

                return true;

            actual = actual.siguiente;

        }

        return false;

    }

 

    // 4. Eliminar un elemento específico

    public bool Eliminar(int dato)

    {

        if (inicio == null)

            return false;

 

        // Si es el primer nodo

        if (inicio.dato == dato)

        {

            inicio = inicio.siguiente;

            return true;

        }

 

        // Buscar el nodo anterior al que se quiere eliminar

        Nodo actual = inicio;

        while (actual.siguiente != null)

        {

            if (actual.siguiente.dato == dato)

            {

                actual.siguiente = actual.siguiente.siguiente;

                return true;

            }

            actual = actual.siguiente;

        }

        return false;

    }

 

    // 5. Mostrar todos los elementos

    public void Mostrar()

    {

        if (inicio == null)

        {

            Console.WriteLine("La lista está vacía");

            return;

        }

 

        Nodo actual = inicio;

        Console.Write("Lista: ");

        while (actual != null)

        {

            Console.Write(actual.dato + " -> ");

            actual = actual.siguiente;

        }

        Console.WriteLine("NULL");

    }

 

    // 6. Obtener tamaño de la lista

    public int Tamano()

    {

        int count = 0;

        Nodo actual = inicio;

        while (actual != null)

        {

            count++;

            actual = actual.siguiente;

        }

        return count;

    }

 

    // 7. Verificar si está vacía

    public bool EstaVacia()

    {

        return inicio == null;

    }

}

 

// Programa principal para probar la lista

class Program

{

    static void Main(string[] args)

    {

        ListaEnlazadaSimple lista = new ListaEnlazadaSimple();

 

        Console.WriteLine("=== DEMOSTRACIÓN DE LISTA ENLAZADA SIMPLE ===\n");

 

        // Insertar al inicio

        lista.InsertarInicio(10);

        lista.InsertarInicio(20);

        lista.InsertarInicio(30);

        Console.WriteLine("1. Insertar al inicio (30,20,10):");

        lista.Mostrar();

 

        // Insertar al final

        lista.InsertarFinal(40);

        lista.InsertarFinal(50);

        Console.WriteLine("\n2. Insertar al final (agrega 40,50):");

        lista.Mostrar();

 

        // Buscar

        Console.WriteLine($"\n3. Buscar 40: {lista.Buscar(40)}");

        Console.WriteLine($"Buscar 100: {lista.Buscar(100)}");

 

        // Tamaño

        Console.WriteLine($"\n4. Tamaño de la lista: {lista.Tamano()}");

 

        // Eliminar

        Console.WriteLine("\n5. Eliminar 20:");

        lista.Eliminar(20);

        lista.Mostrar();

 

        Console.WriteLine($"\n6. ¿Está vacía? {lista.EstaVacia()}");

 

        Console.WriteLine("\nPresiona cualquier tecla para salir...");

        Console.ReadKey();

    }

}

 

PROGRAMA QUE INGRESA NODOS Y REPORTA LISTAS ENLAZADAS

using System;

 

public class Nodo

{

    public int dato;

    public Nodo siguiente;

 

    public Nodo(int dato)

    {

        this.dato = dato;

        this.siguiente = null;

    }

}

 

public class ListaSimple

{

    private Nodo inicio;

 

    public ListaSimple()

    {

        inicio = null;

    }

 

    // Insertar al final

    public void Agregar(int dato)

    {

        Nodo nuevo = new Nodo(dato);

        if (inicio == null)

        {

            inicio = nuevo;

            return;

        }

 

        Nodo actual = inicio;

        while (actual.siguiente != null)

        {

            actual = actual.siguiente;

        }

        actual.siguiente = nuevo;

    }

 

    // Imprimir todos los nodos

    public void Imprimir()

    {

        if (inicio == null)

        {

            Console.WriteLine("La lista está vacía");

            return;

        }

 

        Console.Write("Nodos: ");

        Nodo actual = inicio;

        while (actual != null)

        {

            Console.Write(actual.dato);

            if (actual.siguiente != null)

                Console.Write(" -> ");

            actual = actual.siguiente;

        }

        Console.WriteLine();

    }

}

 

class Program

{

    static void Main(string[] args)

    {

        ListaSimple lista = new ListaSimple();

        Console.WriteLine("=== LISTA ENLAZADA SIMPLE INTERACTIVA ===\n");

 

        // Ingresar datos

        Console.WriteLine("Ingresa números (0 para terminar):");

        int numero;

        do

        {

            Console.Write("Número: ");

            numero = int.Parse(Console.ReadLine());

            if (numero != 0)

            {

                lista.Agregar(numero);

            }

        } while (numero != 0);

 

        Console.WriteLine("\n--- RESULTADO ---");

        lista.Imprimir();

 

        Console.WriteLine("\nPresiona cualquier tecla para salir...");

        Console.ReadKey();

    }

}

 

COLAS

>using System;

 

// Clase Nodo para la estructura de la cola

public class Nodo

{

    public int dato;

    public Nodo siguiente;

   

    public Nodo(int valor)

    {

        dato = valor;

        siguiente = null;

    }

}

 

// Clase Cola que usa nodos enlazados

public class Cola

{

    private Nodo inicio;

    private Nodo fin;

   

    public Cola()

    {

        inicio = null;

        fin = null;

    }

   

    // Encolar (agregar al final)

    public void Encolar(int valor)

    {

        Nodo nuevo = new Nodo(valor);

       

        if (EstaVacia())

        {

            inicio = nuevo;

            fin = nuevo;

        }

        else

        {

            fin.siguiente = nuevo;

            fin = nuevo;

        }

    }

   

    // Desencolar (eliminar del inicio)

    public int Desencolar()

    {

        if (EstaVacia())

        {

            throw new InvalidOperationException("La cola está vacía");

        }

       

        int valor = inicio.dato;

        Nodo temp = inicio;

       

        if (inicio == fin)

        {

            inicio = null;

            fin = null;

        }

        else

        {

            inicio = inicio.siguiente;

        }

       

        temp.siguiente = null;

        return valor;

    }

   

    // Verificar si la cola está vacía

    public bool EstaVacia()

    {

        return inicio == null;

    }

   

    // Mostrar todos los elementos de la cola

    public void Mostrar()

    {

        if (EstaVacia())

        {

            Console.WriteLine("La cola está vacía");

            return;

        }

       

        Nodo actual = inicio;

        Console.Write("Cola: ");

        while (actual != null)

        {

            Console.Write(actual.dato + " ");

            actual = actual.siguiente;

        }

        Console.WriteLine();

    }

}

 

// Programa principal para probar la cola

class Program

{

    static void Main(string[] args)

    {

        Cola miCola = new Cola();

       

        Console.WriteLine("=== DEMO COLA CON NODOS EN C# ===\n");

       

        // Encolar elementos

        miCola.Encolar(10);

        miCola.Encolar(20);

        miCola.Encolar(30);

        miCola.Mostrar();  // Salida: Cola: 10 20 30

       

        // Desencolar

        Console.WriteLine($"Desencolado: {miCola.Desencolar()}");  // 10

        miCola.Mostrar();  // Salida: Cola: 20 30

       

        // Más operaciones

        miCola.Encolar(40);

        miCola.Encolar(50);

        miCola.Mostrar();  // Salida: Cola: 20 30 40 50

       

        Console.WriteLine($"¿Está vacía? {miCola.EstaVacia()}");

    }

} 

No hay comentarios.:

Publicar un comentario