Documentation
¶
Overview ¶
Package queue provides an implementation of a First In First Out (FIFO) queue. The FIFO queue is implemented using the doubly-linked list from the 'list' package.
Example ¶
q := New[int]()
q.Enqueue(1)
q.Enqueue(2)
q.Each(func(i int) {
fmt.Println(i)
})
Output: 1 2
Index ¶
- type Queue
- func (q *Queue[T]) Clear()
- func (q *Queue[T]) Copy() *Queue[T]
- func (q *Queue[T]) Dequeue() T
- func (q *Queue[T]) DequeueAll() []T
- func (q *Queue[T]) Each(fn func(t T))
- func (q *Queue[T]) Empty() bool
- func (q *Queue[T]) Enqueue(value T)
- func (q *Queue[T]) Len() int
- func (q *Queue[T]) Peek() T
- func (q *Queue[T]) PeekAll() []T
- func (q *Queue[T]) TryDequeue() (T, bool)
- func (q *Queue[T]) TryPeek() (T, bool)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Queue ¶
type Queue[T any] struct { // contains filtered or unexported fields }
Queue is a simple First In First Out (FIFO) queue.
func Of ¶ added in v0.9.9
Of returns a First In First Out (FIFO) queue that has been populated with values from an existing slice.
func (*Queue[T]) Clear ¶ added in v0.9.9
func (q *Queue[T]) Clear()
Clear empties the queue, resetting it to zero elements.
func (*Queue[T]) Dequeue ¶
func (q *Queue[T]) Dequeue() T
Dequeue removes and returns the item at the front of the queue.
A panic occurs if the queue is Empty.
Example ¶
q := New[int]() q.Enqueue(1) fmt.Println(q.Dequeue())
Output: 1
func (*Queue[T]) DequeueAll ¶ added in v0.9.9
func (q *Queue[T]) DequeueAll() []T
DequeueAll removes and returns all the items in the queue.
func (*Queue[T]) Each ¶
func (q *Queue[T]) Each(fn func(t T))
Each calls 'fn' on every item in the queue, starting with the least recently pushed element.
func (*Queue[T]) Empty ¶
Empty returns true if the queue is empty.
Example (Empty) ¶
q := New[int]() fmt.Println(q.Empty())
Output: true
Example (Nonempty) ¶
q := New[int]() q.Enqueue(1) fmt.Println(q.Empty())
Output: false
func (*Queue[T]) Enqueue ¶
func (q *Queue[T]) Enqueue(value T)
Enqueue inserts 'value' to the end of the queue.
Example ¶
q := New[int]() q.Enqueue(1)
func (*Queue[T]) Peek ¶
func (q *Queue[T]) Peek() T
Peek returns the item at the front of the queue without removing it.
A panic occurs if the queue is Empty.
Example ¶
q := New[int]() q.Enqueue(1) fmt.Println(q.Peek())
Output: 1
func (*Queue[T]) PeekAll ¶ added in v0.9.9
func (q *Queue[T]) PeekAll() []T
PeekAll returns all the items in the queue without removing them.
func (*Queue[T]) TryDequeue ¶ added in v0.9.9
TryDequeue tries to remove and return the item at the front of the queue.
If the queue is empty, then false is returned as the second return value.