Colas en go

You, goalgorithmqueueDSdata structures
Back

¡Bienvenidos al mundo de Golang y las estructuras de datos! En este blog post vamos a hablar acerca de cómo implementar una estructura de datos fundamental, la cola. Una cola (también conocida como fila o en inglés "queue") es una estructura de datos lineal que sigue el principio de "primero en entrar, primero en salir" (FIFO, por sus siglas en inglés). En una cola, los elementos se agregan al final de la estructura y se eliminan desde el frente. Es decir, el elemento que se inserta primero será el primero en ser eliminado.

Por que implementar esto en go? Técnicamente, Go no proporciona una implementación nativa de la estructura de datos cola (queue) en su biblioteca estándar. Sin embargo, es posible implementar una cola eficiente utilizando otras estructuras de datos, como slices o listas enlazadas.

package queue

type Queue struct {
    bucket int[]
}

func (queue *Queue) Enqueue(data int) {
    queue.bucket = append(queue.bucket, data)
}

func (queue *Queue) Dequeue() int {
    dequeued := queue.data[0]
    queue.data = queue.data[:1]
    return dequeued;
}

func (queue *Queue) Peek() int {
    return queue.data[0];
}

func (queue *Queue) isEmpty() bool {
    return len(queue) == 0;
}

func NewQueue() *Queue {
    return &Queue {
        bucket: make(int[], 0)
    }
}
© Emilio Font.RSS