Cola de C# con ejemplos

Una cola se utiliza para representar una colección de objetos primero en entrar, primero en salir (FIFO). Se utiliza cuando se necesita acceso a los elementos por orden de entrada. Es el tipo de colección no genérico que se define en el espacio de System.Collectionsnombres. Se utiliza para crear una colección dinámica que crece, según la necesidad de su programa. En Queue, puede almacenar elementos del mismo tipo y de diferentes tipos. En general, una cola es útil cuando accede a esa información de la misma manera en que se almacenó en la colección y es un almacenamiento temporal para almacenar datos.

El siguiente diagrama ilustra la jerarquía de clases de cola:

Puntos importantes:

  • La clase Queue implementa las interfaces IEnumerable , ICollection e ICloneable .
  • Cuando agrega un elemento en la lista, se llama poner en cola .
  • cuando elimina un elemento, se llama dequeue .
  • La cola acepta nulo como un valor válido para los tipos de referencia.
  • A medida que se agregan elementos a una cola, la capacidad aumenta automáticamente según sea necesario mediante la reasignación de la array interna.
  • En Queue, puede almacenar elementos duplicados.
  • La capacidad de una Cola es el número de elementos que la Cola puede contener.

¿Cómo crear la cola?

La clase Queue tiene cuatro constructores que se utilizan para crear la cola, que son los siguientes:

  • Queue(): este constructor se usa para crear una instancia de la clase Queue que está vacía y tiene la capacidad inicial predeterminada, y usa el factor de crecimiento predeterminado.
  • Queue(ICollection): este constructor se usa para crear una instancia de la clase Queue que contiene elementos copiados de la colección especificada, tiene la misma capacidad inicial que la cantidad de elementos copiados y usa el factor de crecimiento predeterminado.
  • Queue(Int32): este constructor se usa para crear una instancia de la clase Queue que está vacía y tiene una capacidad inicial especificada, y usa el factor de crecimiento predeterminado.
  • Queue(Int32, Single): este constructor se usa para crear una instancia de la clase Queue que está vacía y tiene una capacidad inicial especificada, y usa el factor de crecimiento especificado.

Veamos cómo crear una cola usando el constructor Queue():

Paso 1: Incluya el espacio de nombres System.Collections en su programa con la ayuda del uso de palabras clave.

Sintaxis:

using System.Collections;

Paso 2: Cree una cola usando la clase Queue como se muestra a continuación:

Queue queue_name = new Queue();

Paso 3: si desea agregar elementos en su cola, use el método Enqueue() para agregar elementos en su cola. Como se muestra en el siguiente ejemplo.

Ejemplo:

// C# program to illustrate queue
using System;
using System.Collections;
  
public class GFG {
    static public void Main()
    {
  
        // Create a queue
        // Using Queue class
        Queue my_queue = new Queue();
  
        // Adding elements in Queue
        // Using Enqueue() method
        my_queue.Enqueue("GFG");
        my_queue.Enqueue(1);
        my_queue.Enqueue(100);
        my_queue.Enqueue(null);
        my_queue.Enqueue(2.4);
        my_queue.Enqueue("Geeks123");
  
        // Accessing the elements
        // of my_queue Queue
        // Using foreach loop
        foreach(var ele in my_queue)
        {
            Console.WriteLine(ele);
        }
    }
}
Producción:

GFG
1
100

2.4
Geeks123

¿Cómo eliminar elementos de la Cola?

En Cola, puede eliminar elementos de la cola. La clase Queue proporciona dos métodos diferentes para eliminar elementos y los métodos son:

  • Borrar : este método se utiliza para eliminar los objetos de la cola.
  • Dequeue : este método elimina el elemento inicial de la cola.
  • Ejemplo:

    // C# program to illustrate how
    // to remove elements from queue
    using System;
    using System.Collections;
      
    public class GFG {
        static public void Main()
        {
      
            // Create a queue
            // Using Queue class
            Queue my_queue = new Queue();
      
            // Adding elements in Queue
            // Using Enqueue() method
            my_queue.Enqueue("GFG");
            my_queue.Enqueue(1);
            my_queue.Enqueue(100);
            my_queue.Enqueue(2.4);
            my_queue.Enqueue("Geeks123");
      
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
            my_queue.Dequeue();
      
            // After Dequeue method
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
      
            // Remove all the elements from the queue
            my_queue.Clear();
      
            // After Clear method
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
        }
    }
    Producción:

    Total elements present in my_queue: 5
    Total elements present in my_queue: 4
    Total elements present in my_queue: 0
    

¿Cómo obtener el elemento superior de la cola?

En Queue, puede encontrar fácilmente el elemento superior de la cola utilizando los siguientes métodos proporcionados por la clase Queue:

  • Peek : este método devuelve el objeto al principio de la cola sin eliminarlo.
  • Dequeue : este método devuelve el objeto al comienzo de la cola con modificación, lo que significa que este método elimina el elemento superior de la cola.
  • Ejemplo:

    // C# program to illustrate how
    // get topmost elements of the queue
    using System;
    using System.Collections;
      
    public class GFG {
        static public void Main()
        {
      
            // Create a queue
            // Using Queue class
            Queue my_queue = new Queue();
      
            // Adding elements in Queue
            // Using Enqueue() method
            my_queue.Enqueue("GFG");
            my_queue.Enqueue("Geeks");
            my_queue.Enqueue("GeeksforGeeks");
            my_queue.Enqueue("geeks");
            my_queue.Enqueue("Geeks123");
      
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
      
            // Obtain the topmost element of my_queue
            // Using Dequeue method
            Console.WriteLine("Topmost element of my_queue"
                         + " is: {0}", my_queue.Dequeue());
                               
      
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
      
            // Obtain the topmost element of my_queue
            // Using Peek method
            Console.WriteLine("Topmost element of my_queue is: {0}",
                                                   my_queue.Peek());
      
            Console.WriteLine("Total elements present in my_queue: {0}",
                                                        my_queue.Count);
        }
    }
    Producción:

    Total elements present in my_queue: 5
    Topmost element of my_queue is: GFG
    Total elements present in my_queue: 4
    Topmost element of my_queue is: Geeks
    Total elements present in my_queue: 4
    

¿Cómo verificar la disponibilidad de elementos en la cola?

En Queue, puede verificar si el elemento dado está presente o no usando el método Contain(). O, en otras palabras, si desea buscar un elemento en la cola dada, use el método contains() .

Ejemplo:

// C# program to illustrate how
// to check element present in
// the queue or not
using System;
using System.Collections;
  
class GFG {
  
    static public void Main()
    {
  
        // Create a queue
        // Using Queue class
        Queue my_queue = new Queue();
  
        // Adding elements in Queue
        // Using Enqueue() method
        my_queue.Enqueue("GFG");
        my_queue.Enqueue("Geeks");
        my_queue.Enqueue("GeeksforGeeks");
        my_queue.Enqueue("geeks");
        my_queue.Enqueue("Geeks123");
  
        // Checking if the element is
        // present in the Queue or not
        if (my_queue.Contains("GeeksforGeeks") == true) {
            Console.WriteLine("Element available...!!");
        }
        else {
            Console.WriteLine("Element not available...!!");
        }
    }
}
Producción:

Element available...!!

Cola genérica frente a cola no genérica

Cola genérica Cola no genérica
La cola genérica se define en el espacio de nombres System.Collections.Generic. La cola no genérica se define en el espacio de nombres System.Collections.
La cola genérica solo puede almacenar el mismo tipo de elementos. La cola no genérica puede almacenar el mismo tipo o diferentes tipos de elementos.
Es necesario definir el tipo de elementos en la cola. No es necesario definir el tipo de los elementos en la cola.
Es de tipo seguro. No es de tipo seguro.

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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