import "github.com/zyedidia/generic/queue"
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)
})
}
1
2
- type Queue
- func NewT any *Queue[T]
- func Of[S ~[]E, E any](slice S) *Queue[E]
- 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)
type Queue
Queue is a simple First In First Out (FIFO) queue.
type Queue[T any] struct {
// contains filtered or unexported fields
}
func New
func New[T any]() *Queue[T]
New returns an empty First In First Out (FIFO) queue.
func Of
func Of[S ~[]E, E any](slice S) *Queue[E]
Of returns a First In First Out (FIFO) queue that has been populated with values from an existing slice.
func (*Queue[T]) Clear
func (q *Queue[T]) Clear()
Clear empties the queue, resetting it to zero elements.
func (*Queue[T]) Copy
func (q *Queue[T]) Copy() *Queue[T]
Copy returns a shallow copy of this queue.
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.
func (*Queue[T]) DequeueAll
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
func (q *Queue[T]) Empty() bool
Empty returns true if the queue is empty.
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]) Len
func (q *Queue[T]) Len() int
Len returns the number of items currently in the queue.
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.
func (*Queue[T]) PeekAll
func (q *Queue[T]) PeekAll() []T
PeekAll returns all the items in the queue without removing them.
func (*Queue[T]) TryDequeue
func (q *Queue[T]) TryDequeue() (T, bool)
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.
func (*Queue[T]) TryPeek
func (q *Queue[T]) TryPeek() (T, bool)
TryPeek tries to return the item at the front of the queue without removing it.
If the queue is empty, then false is returned as the second return value.
Generated by gomarkdoc