linktable

package
v1.4.4-alpha1202-loadi... Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: AGPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LinkTable

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

func NewBoolLinkTable

func NewBoolLinkTable(value bool, size int, onSizeExceeded func(*LinkTable[bool])) *LinkTable[bool]

便捷函数 - 布尔链表

func NewFloat64LinkTable

func NewFloat64LinkTable(value float64, size int, onSizeExceeded func(*LinkTable[float64])) *LinkTable[float64]

便捷函数 - 浮点数链表

func NewIntLinkTable

func NewIntLinkTable(value int, size int, onSizeExceeded func(*LinkTable[int])) *LinkTable[int]

便捷函数 - 整数链表

func NewLinkTable

func NewLinkTable[T any](value T, size int, onSizeExceeded func(*LinkTable[T])) *LinkTable[T]

func NewStringLinkTable

func NewStringLinkTable(value string, size int, onSizeExceeded func(*LinkTable[string])) *LinkTable[string]

便捷函数 - 字符串链表

func NewUnlimitedBoolLinkTable

func NewUnlimitedBoolLinkTable(value bool) *LinkTable[bool]

func NewUnlimitedFloat64LinkTable

func NewUnlimitedFloat64LinkTable(value float64) *LinkTable[float64]

func NewUnlimitedIntLinkTable

func NewUnlimitedIntLinkTable(value int) *LinkTable[int]

func NewUnlimitedLinkTable

func NewUnlimitedLinkTable[T any](value T) *LinkTable[T]

NewUnlimitedLinkTable 创建一个无限容量的链表

func NewUnlimitedStringLinkTable

func NewUnlimitedStringLinkTable(value string) *LinkTable[string]

func (*LinkTable[T]) ForEach

func (l *LinkTable[T]) ForEach(fn func(T) bool)

添加遍历全部节点的便捷方法

func (*LinkTable[T]) Len

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

获取链表长度

func (*LinkTable[T]) Parent

func (l *LinkTable[T]) Parent() *LinkTable[T]

func (*LinkTable[T]) Push

func (l *LinkTable[T]) Push(value T)

func (*LinkTable[T]) ToSlice

func (l *LinkTable[T]) ToSlice() []T

获取所有值的切片

func (*LinkTable[T]) Value

func (l *LinkTable[T]) Value() T

type LinkedList

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

LinkedList 定义了链表结构 它包含指向头节点、尾节点的指针以及链表的长度

func New

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

New 创建并返回一个新的空链表

func (*LinkedList[T]) Get

func (l *LinkedList[T]) Get(index int) (T, bool)

func (*LinkedList[T]) IsEmpty

func (l *LinkedList[T]) IsEmpty() bool

IsEmpty 检查链表是否为空

func (*LinkedList[T]) Len

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

Len 返回链表的长度

func (*LinkedList[T]) Print

func (l *LinkedList[T]) Print()

Print 打印链表内容

func (*LinkedList[T]) PushBack

func (l *LinkedList[T]) PushBack(value T)

PushBack 在链表尾部添加一个新元素

func (*LinkedList[T]) PushBackBatch

func (l *LinkedList[T]) PushBackBatch(values []T)

PushBackBatch 在链表尾部批量添加一组元素

func (*LinkedList[T]) PushFront

func (l *LinkedList[T]) PushFront(value T)

PushFront 在链表头部添加一个新元素

func (*LinkedList[T]) PushFrontBatch

func (l *LinkedList[T]) PushFrontBatch(values []T)

PushFrontBatch 在链表头部批量添加一组元素 注意:为了保持传入切片的顺序,我们反向遍历切片进行添加 例如:PushFrontBatch([1, 2, 3]) 后,链表顺序为 1 -> 2 -> 3

func (*LinkedList[T]) ToSlice

func (l *LinkedList[T]) ToSlice() []T

ToSlice 将链表转换为一个切片,方便打印和调试

type Node

type Node[T any] struct {
	Value T
	Next  *Node[T]
}

Node 定义了链表中的一个节点 使用泛型 [T comparable],T 代表任何可比较的类型(如 int, string, struct 等)

Jump to

Keyboard shortcuts

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