"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Reaprendizaje de los conceptos básicos de CS: implementación de cola

Reaprendizaje de los conceptos básicos de CS: implementación de cola

Publicado el 2024-11-09
Navegar:254

Relearning basics of CS - Implementing Queue

¿Alguna vez has estado en una cola? La estructura de datos de la cola también hace lo mismo. Te paras al final de la cola cuando quieres hacer un pedido, tal vez en tu restaurante de autoservicio favorito, luego subes en la cola y te vas.

La estructura de datos de la cola en CS realiza la misma funcionalidad. La estructura de datos de cola es una estructura de datos de primero en entrar, primero en salir. La estructura de datos de cola se puede construir con dos funciones básicas Enqueue y Dequeue, que básicamente consisten en agregar y eliminar de la lista.

Ejemplos de la vida real

En el mundo real de la informática, las colas forman la columna vertebral de los siguientes componentes de software

  • Programación de tareas
  • Manejo de eventos
  • Comunicación asíncrona, etc.

Si bien un componente sencillo y fácil de visualizar sería

  1. Una cola en la lista de reproducción para las canciones
  2. Una cola en el orden de los datos que se envían a través de la red, etc.

Implementación

package main

import (
    "fmt"
    "errors"
)

type Queue struct{
    Elements []int
    Size int
}

func (q *Queue) Enqueue(value int){
    if q.GetLength() == q.Size { 
        fmt.Println("Overflow") 
        return
    } 
    q.Elements = append(q.Elements, value) 
}

func (q *Queue) Dequeue() int {
    if q.IsEmpty() { 
        fmt.Println("UnderFlow") 
        return 0
    } 
    element := q.Elements[0] 
    if q.GetLength() == 1 { 
        q.Elements = nil 
        return element 
    } 
    q.Elements = q.Elements[1:] 
    return element
}

func (q *Queue) GetLength() int { 
    return len(q.Elements) 
} 

func (q *Queue) IsEmpty() bool { 
    return len(q.Elements) == 0
} 

func (q *Queue) Peek() (int, error) { 
    if q.IsEmpty() { 
        return 0, errors.New("empty queue") 
    } 
    return q.Elements[0], nil 
} 

Complejidad

Complejidad del tiempo: O(1) para poner en cola y quitar la cola
Complejidad del espacio: O(1) para poner en cola y quitar la cola

Referencias

Referencia: https://www.geeksforgeeks.org/queue-in-go-language/

Declaración de liberación Este artículo se reproduce en: https://dev.to/abinav_athreya_f4b5487056/relearning-basics-of-cs-implementing-queue-54g7?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3