Documentation
¶
Overview ¶
Example ¶
dq := NewDeque()
dq.PushBack(100)
dq.PushBack(200)
dq.PushBack(300)
for !dq.Empty() {
fmt.Println(dq.PopFront())
}
dq.PushFront(100)
dq.PushFront(200)
dq.PushFront(300)
for i, n := 0, dq.Len(); i < n; i++ {
fmt.Println(dq.PopFront())
}
Output: 100 200 300 300 200 100
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NumChunksAllocated ¶
func NumChunksAllocated() int64
NumChunksAllocated returns the number of chunks allocated by now.
Types ¶
type Deque ¶
type Deque interface {
// PushBack adds a new value v at the back of Deque.
PushBack(v Elem)
// PushFront adds a new value v at the front of Deque.
PushFront(v Elem)
// PopBack removes a value from the back of Deque and returns
// the removed value or nil if the Deque is empty.
PopBack() Elem
// PopFront removes a value from the front of Deque and returns
// the removed value or nil if the Deque is empty.
PopFront() Elem
// Back returns the last value of Deque or nil if the Deque is empty.
Back() Elem
// Front returns the first value of Deque or nil if the Deque is empty.
Front() Elem
// Empty returns whether Deque is empty.
Empty() bool
// Len returns the number of values in Deque.
Len() int
// Enqueue is an alias of PushBack.
Enqueue(v Elem)
// Dequeue is an alias of PopFront.
Dequeue() Elem
// DequeueMany removes a number of values from the front of Deque and
// returns the removed values or nil if the Deque is empty.
// If max <= 0, DequeueMany removes and returns all the values in Deque.
DequeueMany(max int) []Elem
// DequeueManyWithBuffer is similar to DequeueMany except that it uses
// buf to store the removed values as long as it has enough space.
DequeueManyWithBuffer(max int, buf []Elem) []Elem
// Range iterates all the values in Deque.
Range(f func(i int, v Elem) bool)
// Peek returns the value at idx.
Peek(idx int) Elem
// Replace replaces the value at idx.
Replace(idx int, v Elem)
}
Deque is a fast double-ended queue.
Click to show internal directories.
Click to hide internal directories.