• 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, 27 de marzo de 2026

COLAS EN C#

COLAS

Una cola con nodos es una estructura de datos lineal que sigue el principio FIFO (First-In, First-Out), pero que en lugar de usar un arreglo (vector) con tamaño fijo, utiliza objetos conectados entre sí.

Aquí tienes el concepto desglosado en puntos clave:

1. El concepto de Nodo

Imagina que cada elemento es un "vagón" de un tren. Un nodo es un objeto que tiene dos compartimentos:

Dato: La información que guardas (en tu caso, un string).

Enlace (Siguiente): Una flecha o puntero que apunta a la ubicación del siguiente nodo en la memoria.

2. Memoria Dinámica

A diferencia de un arreglo donde debes decir "esta cola tendrá 10 espacios", en una cola con nodos la memoria se solicita conforme se necesita.

Si agregas un elemento, creas un nodo.

Si lo quitas, el nodo se destruye.

La cola puede crecer infinitamente mientras tengas memoria RAM disponible.

3. Los Punteros de Control

Para que una cola funcione, necesitamos saber siempre dos cosas:

Frente (Primero): ¿Quién es el que sigue para salir? (De aquí se desencola).

Final (Último): ¿Quién es el más reciente en llegar? (Aquí se encola).





CODIGO:


using System;

using System.Runtime.CompilerServices;

using System.Security.Cryptography.X509Certificates;

class Nodo

{

    public int dato;

    public Nodo Siguiente;

 

    public Nodo(int dato)

    {

     this.dato = dato;

   

     this.Siguiente=null;

 

    }

}

class Cola

{

 

    private Nodo inicio;

    private Nodo final;

    public Cola()

    {

        inicio = null;

        final = null;

    }

    public void Encolar(int valor)

    {

        Nodo nuevoNodo = new Nodo(valor);

        if (inicio == null)

        {

            inicio = nuevoNodo;

            final = nuevoNodo;

        }

        else

        {

            final.Siguiente = nuevoNodo;

            final = nuevoNodo;

 

        }

    }

    public int desencolar()

    {

        if (inicio == null)

        {

            Console.WriteLine("la cola esta vacia");

            return -1;

        }

        int aux = inicio.dato;

        inicio = inicio.Siguiente;

 

        if (inicio == null)

        {

            final = null;

        }

 

        return aux;

    }

    public void mostrar()

    {

        if (inicio == null)

        {

            Console.WriteLine("la cola esta vacia");

            return;

 

        }

 

        Nodo actual = inicio;

        Console.WriteLine("la cola :");

        while (actual != null)

        {

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

            actual = actual.Siguiente;

        }

        Console.WriteLine();

       

 

    }         

 

class Programa

{

    static void Main()

    {

        Cola cola = new Cola();

        cola.Encolar(5);

        cola.Encolar(14);

        cola.Encolar(3);

        cola.Encolar(33);

        cola.Encolar(9);

        cola.Encolar(14);

        cola.Encolar(17);

        cola.Encolar(4);

        cola.mostrar();

        //Console.WriteLine("frente"+cola.)

        Console.WriteLine("desencolar" + cola.desencolar());

        cola.mostrar();

    

    }

}

 

No hay comentarios.:

Publicar un comentario