¿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.
En el mundo real de la informática, las colas forman la columna vertebral de los siguientes componentes de software
Si bien un componente sencillo y fácil de visualizar sería
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 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
Referencia: https://www.geeksforgeeks.org/queue-in-go-language/
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