Documentation ¶
Index ¶
- Variables
- type Element
- type GIDX
- type GIDXAllocator
- type GIDXArray
- func (g GIDXArray[T]) First(a *GIDXAllocator) (GIDX, T)
- func (g GIDXArray[T]) Get(index GIDX) T
- func (g GIDXArray[T]) GetAll(a *GIDXAllocator) []T
- func (g GIDXArray[T]) GetAllIndices(a *GIDXAllocator) []GIDX
- func (g GIDXArray[T]) Remove(index GIDX) GIDXArray[T]
- func (g GIDXArray[T]) Set(index GIDX, value T) GIDXArray[T]
- type GIDXArrayEntry
- type List
- func (l *List[T]) Back() *Element[T]
- func (l *List[T]) Front() *Element[T]
- func (l *List[T]) Init() *List[T]
- func (l *List[T]) InsertAfter(v T, mark *Element[T]) *Element[T]
- func (l *List[T]) InsertBefore(v T, mark *Element[T]) *Element[T]
- func (l *List[T]) Len() int
- func (l *List[T]) MoveAfter(e, mark *Element[T])
- func (l *List[T]) MoveBefore(e, mark *Element[T])
- func (l *List[T]) MoveToBack(e *Element[T])
- func (l *List[T]) MoveToFront(e *Element[T])
- func (l *List[T]) PushBack(v T) *Element[T]
- func (l *List[T]) PushBackList(other *List[T])
- func (l *List[T]) PushFront(v T) *Element[T]
- func (l *List[T]) PushFrontList(other *List[T])
- func (l *List[T]) Remove(e *Element[T]) T
- type PriorityQueue
- type Queue
- type Stack
Constants ¶
This section is empty.
Variables ¶
var (
ErrPriorityQueueEmpty = errors.New("priority queue has no elements")
)
var (
ErrQueueEmpty = errors.New("queue has no elements")
)
Functions ¶
This section is empty.
Types ¶
type Element ¶
type Element[T any] struct { // The value stored with this element. Value T // contains filtered or unexported fields }
Element is an element of a linked list.
type GIDXAllocator ¶ added in v1.1.0
type GIDXAllocator struct {
// contains filtered or unexported fields
}
func NewGIDXAllocator ¶ added in v1.1.0
func NewGIDXAllocator() *GIDXAllocator
func (*GIDXAllocator) Allocate ¶ added in v1.1.0
func (g *GIDXAllocator) Allocate() GIDX
func (*GIDXAllocator) Deallocate ¶ added in v1.1.0
func (g *GIDXAllocator) Deallocate(i GIDX) bool
func (*GIDXAllocator) IsLive ¶ added in v1.1.0
func (g *GIDXAllocator) IsLive(i GIDX) bool
type GIDXArray ¶ added in v1.1.0
type GIDXArray[T any] []GIDXArrayEntry[T]
func NewGIDXArray ¶ added in v1.1.0
func (GIDXArray[T]) First ¶ added in v1.1.0
func (g GIDXArray[T]) First(a *GIDXAllocator) (GIDX, T)
func (GIDXArray[T]) GetAll ¶ added in v1.1.0
func (g GIDXArray[T]) GetAll(a *GIDXAllocator) []T
func (GIDXArray[T]) GetAllIndices ¶ added in v1.1.0
func (g GIDXArray[T]) GetAllIndices(a *GIDXAllocator) []GIDX
type GIDXArrayEntry ¶ added in v1.1.0
type GIDXArrayEntry[T any] struct { // contains filtered or unexported fields }
type List ¶
type List[T any] struct { // contains filtered or unexported fields }
List represents a doubly linked list. The zero value for List is an empty list ready to use.
func (*List[T]) InsertAfter ¶
InsertAfter inserts a new element e with value v immediately after mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List[T]) InsertBefore ¶
InsertBefore inserts a new element e with value v immediately before mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List[T]) MoveAfter ¶
MoveAfter moves element e to its new position after mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List[T]) MoveBefore ¶
MoveBefore moves element e to its new position before mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List[T]) MoveToBack ¶
MoveToBack moves element e to the back of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List[T]) MoveToFront ¶
MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List[T]) PushBack ¶
PushBack inserts a new element e with value v at the back of list l and returns e.
func (*List[T]) PushBackList ¶
PushBackList inserts a copy of another list at the back of list l. The lists l and other may be the same. They must not be nil.
func (*List[T]) PushFront ¶
PushFront inserts a new element e with value v at the front of list l and returns e.
func (*List[T]) PushFrontList ¶
PushFrontList inserts a copy of another list at the front of list l. The lists l and other may be the same. They must not be nil.
type PriorityQueue ¶ added in v1.2.0
type PriorityQueue[T any] struct { // contains filtered or unexported fields }
func NewPriorityQueue ¶ added in v1.2.0
func NewPriorityQueue[T any](reverse bool) *PriorityQueue[T]
func (*PriorityQueue[T]) Dequeue ¶ added in v1.2.0
func (pq *PriorityQueue[T]) Dequeue() (T, error)
func (*PriorityQueue[T]) Enqueue ¶ added in v1.2.0
func (pq *PriorityQueue[T]) Enqueue(value T, priority int)
func (*PriorityQueue[T]) Len ¶ added in v1.2.0
func (pq *PriorityQueue[T]) Len() int