list

package module
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2026 License: MIT Imports: 0 Imported by: 0

README

go-generics-list

The generics version of container/list

package main

import (
    "fmt"

    "github.com/hymkor/go-generics-list"
)

func main() {
    L := list.New[rune]()

    for _, c := range "ABCDEFG" {
        L.PushBack(c)
    }

    fmt.Print("Ascend:")
    for p := L.Front(); p != nil; p = p.Next() {
        fmt.Printf(" '%c'", p.Value)
    }
    fmt.Println()

    fmt.Print("Descend:")
    for p := L.Back(); p != nil; p = p.Prev() {
        fmt.Printf(" '%c'", p.Value)
    }
    fmt.Println()
}
Ascend: 'A' 'B' 'C' 'D' 'E' 'F' 'G'
Descend: 'G' 'F' 'E' 'D' 'C' 'B' 'A'

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Element

type Element[T any] struct {
	Value T
	// contains filtered or unexported fields
}

func (*Element[T]) Next

func (e *Element[T]) Next() *Element[T]

func (*Element[T]) Prev

func (e *Element[T]) Prev() *Element[T]

type List

type List[T any] struct {
	// contains filtered or unexported fields
}

func New

func New[T any]() *List[T]

func (*List[T]) Back

func (l *List[T]) Back() *Element[T]

func (*List[T]) Front

func (l *List[T]) Front() *Element[T]

func (*List[T]) Init

func (l *List[T]) Init() *List[T]

func (*List[T]) InsertAfter

func (l *List[T]) InsertAfter(v T, mark *Element[T]) *Element[T]

func (*List[T]) InsertBefore

func (l *List[T]) InsertBefore(v T, mark *Element[T]) *Element[T]

func (*List[T]) Len

func (l *List[T]) Len() int

func (*List[T]) MoveAfter

func (l *List[T]) MoveAfter(e, mark *Element[T])

func (*List[T]) MoveBefore

func (l *List[T]) MoveBefore(e, mark *Element[T])

func (*List[T]) MoveToBack

func (l *List[T]) MoveToBack(e *Element[T])

func (*List[T]) MoveToFront

func (l *List[T]) MoveToFront(e *Element[T])

func (*List[T]) PushBack

func (l *List[T]) PushBack(v T) *Element[T]

func (*List[T]) PushBackList

func (l *List[T]) PushBackList(other *List[T])

func (*List[T]) PushFront

func (l *List[T]) PushFront(v T) *Element[T]

func (*List[T]) PushFrontList

func (l *List[T]) PushFrontList(other *List[T])

func (*List[T]) Remove

func (l *List[T]) Remove(e *Element[T]) T

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL