kring

package
v0.5.7 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Ring

type Ring[T any] struct {
	Value T // 环元素的值
	// contains filtered or unexported fields
}

Ring 是环形链表(或环)的一个元素。 环没有起点或终点;指向任何环元素的指针都可以作为整个环的引用。 空环表示为 nil Ring 指针。Ring 的零值是一个包含 nil Value 的单元素环。

func New

func New[T any](n int) *Ring[T]

New 函数创建一个长度为 n 的 Ring 结构体指针,泛型参数 T 为 Ring 存储的数据类型。 如果 n 小于等于 0,则返回 nil。

参数:

n: Ring 的长度

返回值:

*Ring[T]: 指向 Ring 结构体的指针,如果 n 小于等于 0,则返回 nil

func (*Ring[T]) Count

func (r *Ring[T]) Count() int

Count 返回环形链表中的节点数

如果环形链表为空,则返回 0

func (*Ring[T]) Do

func (r *Ring[T]) Do(f func(any))

Do 按正向顺序对环的每个元素调用函数 f. 如果 f 修改了 *r, Do 的行为未定义

func (*Ring[T]) Len

func (r *Ring[T]) Len() int
func (that *Ring[T]) Link(s *Ring[T]) *Ring[T]

Link 函数用于将两个环(Ring)s 和 that 链接在一起。

参数:

s: *Ring[T] 类型,表示需要链接的另一个环。

返回值:

*Ring[T] 类型,返回链接后的新环的尾节点。

说明:

该函数将环 s 链接到环 that 后面,并返回链接后的新环的尾节点。
如果 s 为 nil,则该函数不会进行任何操作并返回 that 的尾节点。
如果 that 和 s 是同一个环,则该函数将删除 that 和 s 之间的节点,并更新环的长度。
如果 that 和 s 是不同的环,则该函数将两个环合并为一个环,并更新环的长度。

func (*Ring[T]) Move

func (that *Ring[T]) Move(n int) *Ring[T]

Move 方法用于移动 Ring 指针。

参数:

n int:移动步数,可以为正数、负数或零。正数表示向前移动,负数表示向后移动。

返回值:

*Ring[T]:移动后的 Ring 指针。

func (*Ring[T]) Next

func (that *Ring[T]) Next() *Ring[T]

Prev 返回当前节点的下一个节点

如果当前节点无后一个节点(即当前节点是环的最后一个节点),则调用 init 方法初始化环,并返回初始化后的环的最后节点

返回值:

*Ring[T]:返回后一个节点,如果没有后一个节点则返回初始化后的环的最后节点

func (*Ring[T]) Prev

func (that *Ring[T]) Prev() *Ring[T]

Prev 返回当前节点的前一个节点

如果当前节点没有前一个节点(即当前节点是环的最后一个节点),则调用 init 方法初始化环,并返回初始化后的环的第一个节点

返回值:

*Ring[T]:返回前一个节点,如果没有前一个节点则返回初始化后的环的第一个节点
func (that *Ring[T]) Unlink(n int) *Ring[T]

Unlink 从当前环中删除第 n 个节点,并返回删除节点后的新环 如果当前环为 nil 或者 n <= 0,则返回 nil 如果 n 为 0,则返回 nil 参数:

n: int - 要删除的节点位置

返回值:

*Ring[T] - 删除节点后的新环

Jump to

Keyboard shortcuts

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