Documentation ¶
Overview ¶
Package xlist is a copy of standard container/list but uses generics for strict checks on compile time
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
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 List ¶
type List[T any] interface { // PushBack inserts a new element e with value v at the back of list l and returns e. PushBack(v T) *Element[T] // 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. PushBackList(other List[T]) // PushFront inserts a new element e with value v at the front of list l and returns e. PushFront(v T) *Element[T] // 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. PushFrontList(other List[T]) // 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. MoveToFront(e *Element[T]) // 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. MoveToBack(e *Element[T]) // 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. MoveAfter(e, mark *Element[T]) // 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. MoveBefore(e, mark *Element[T]) // Remove removes e from l if e is an element of list l. // It returns the element value e.Value. // The element must not be nil. Remove(e *Element[T]) T // 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. InsertBefore(v T, mark *Element[T]) *Element[T] // 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. InsertAfter(v T, mark *Element[T]) *Element[T] // Front returns the first element of list l or nil if the list is empty. Front() *Element[T] // Back returns the last element of list l or nil if the list is empty. Back() *Element[T] // Len returns the number of elements of list l. // The complexity is O(1). Len() int // Clear clears the list l. Clear() }
List represents a doubly linked list. The zero value for List is an empty list ready to use.
Click to show internal directories.
Click to hide internal directories.