Cola en Scala

Una cola es una estructura de datos primero en entrar, primero en salir (FIFO). Scala ofrece una cola inmutable y una cola mutable. Una cola mutable se puede actualizar o ampliar en su lugar. Significa que uno puede cambiar, agregar o eliminar elementos de una cola como efecto secundario. La cola inmutable, por el contrario, nunca cambia.

En Scala, Queue se implementa como un par de listas. Uno se usa para insertar los elementos y el segundo para contener elementos eliminados. Los elementos se agregan a la primera lista y se eliminan de la segunda lista. Las dos operaciones más básicas de Queue son Enqueue y Dequeue .

  • Enqueue : agregar un elemento al final de la cola.
  • Dequeue : eliminar un elemento del principio de la cola.

Métodos en cola:

  1. +=: este método se usa para agregar un solo elemento al final de la cola.
  2. ++=: Este método se usa para Insertar más de un elemento al final de la cola.
  3. clear: elimina todos los elementos de la cola.
  4. dequeue: Devuelve el primer elemento de la cola
  5. enqueue: agrega todos los elementos a la cola.
  6. es igual a: Comprueba si dos colas son estructuralmente idénticas.
  7. front: Devuelve el primer elemento de la cola.
  8. isEmpty: Comprueba si la cola está vacía o no.

A continuación se muestran programas simples de Scala para demostrar estas operaciones:

Ejemplo 1:

// Scala program for illustrating Queue
  
// Import Queue 
import scala.collection.mutable._
  
// Creating object
object GfG
{ 
    // Main method
    def main(args:Array[String])
    {
        // Initialize a queue
        var q1 = Queue(1, 2, 3, 4, 5)
          
        // Print the elements of queue
        print("Queue Elements: ")
        q1.foreach((element:Int) => print(element+" ")) 
          
        // Print the first element of the queue
        var firstElement = q1.front 
        println("\nFirst element in the queue: "+ firstElement) 
          
        // Enqueue 10 in the queue
        q1.enqueue(10) 
          
        // Print the elements of queue
        print("Queue Elements after enqueue: ") 
        q1.foreach((element:Int) => print(element+" "))
          
        // Dequeue first element from the queue
        var deq = q1.dequeue
          
        // Print the elements of queue
        print("\nQueue Elements after dequeue: ") 
        q1.foreach((element:Int) => print(element+" "))
          
        // Print the Dequeued element
        print("\nDequeued element: " + deq)
          
        // using isEmpty method
        println("\nQueue is empty: "+ q1.isEmpty)
    }
}
Producción:

Queue Elements: 1 2 3 4 5 
First element in the queue: 1
Queue Elements after enqueue: 1 2 3 4 5 10 
Queue Elements after dequeue: 2 3 4 5 10 
Dequeued element: 1
Queue is empty: false

Ejemplo 2:

// Scala program for illustrating Queue
  
// Import Queue 
import scala.collection.mutable._
  
// Creating object
object GfG
{ 
    // Main method
    def main(args:Array[String])
    {
        // Initialize a queue
        var fruits = Queue[String]()
          
        // Adding elements to the queue
        fruits.enqueue("apple")
        fruits.enqueue("banana")
        fruits.enqueue("mango")
        fruits.enqueue("guava")
          
        // Print the elements of queue
        print("Queue Elements: ")
        fruits.foreach((element:String) => print(element+" ")) 
          
        // Print the first element of the queue
        var firstElement = fruits.front 
        println("\nFirst element in the queue: "+ firstElement) 
          
        // Enqueue pineapple in the queue
        fruits.enqueue("pineapple") 
          
        // Print the elements of queue
        print("Queue Elements after enqueue: ") 
        fruits.foreach((element:String) => print(element+" "))
          
        // Dequeue first element from the queue
        var deq = fruits.dequeue
          
        // Print the elements of queue
        print("\nQueue Elements after dequeue: ") 
        fruits.foreach((element:String) => print(element+" "))
          
        // Print the Dequeued element
        print("\nDequeued element: " + deq)
  
        // Using clear method
        println("\nclear the queue: "+ fruits.clear)
          
        // Using isEmpty method
        println("\nqueue is empty: "+ fruits.isEmpty)
          
    }
}
Producción:

Queue Elements: apple banana mango guava 
First element in the queue: apple
Queue Elements after enqueue: apple banana mango guava pineapple 
Queue Elements after dequeue: banana mango guava pineapple 
Dequeued element: apple
clear the queue:()

queue is empty:true

Publicación traducida automáticamente

Artículo escrito por rupesh_rao 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 *