redblacktree

package
v0.0.0-...-fb30d79 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package redblacktree 提供红黑树实现

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Node

type Node[K constraints.Ordered, V any] struct {
	K K
	V V
}

Node 表示一个节点

type Tree

type Tree[K constraints.Ordered, V any] struct {
	// contains filtered or unexported fields
}

Tree 表示一个红黑树实现

func New

func New[K constraints.Ordered, V any]() *Tree[K, V]

New 新建一个红黑树实现

func (*Tree[K, V]) Ceiling

func (t *Tree[K, V]) Ceiling(k K) *Node[K, V]

Ceiling 获取某个值右边的第一个值, 如果集合为空或者当前值是最大值, 则返回 nil

func (*Tree[K, V]) Clear

func (t *Tree[K, V]) Clear()

Clear 清空红黑树

func (*Tree[K, V]) Floor

func (t *Tree[K, V]) Floor(k K) *Node[K, V]

Floor 获取某个值左边的第一个值, 如果集合为空或者当前值是最小值, 则返回 nil

func (*Tree[K, V]) Get

func (t *Tree[K, V]) Get(k K) (v V, exist bool)

Get 获取某值

func (*Tree[K, V]) Iterate

func (t *Tree[K, V]) Iterate(f func(k K, v V) bool)

ITerate 遍历每一个值

func (*Tree[K, V]) Keys

func (t *Tree[K, V]) Keys() (keys []K)

Keys 返回所有的 key, 列表为空则返回 nil

func (*Tree[K, V]) Left

func (t *Tree[K, V]) Left() *Node[K, V]

Left 返回整个集合的左值, 如果没有则返回 nil

func (*Tree[K, V]) Put

func (t *Tree[K, V]) Put(k K, v V)

Put 设置一个值

func (*Tree[K, V]) Right

func (t *Tree[K, V]) Right() *Node[K, V]

Right 返回整个集合的左值, 如果没有则返回 nil

func (*Tree[K, V]) Set

func (t *Tree[K, V]) Set(k K, v V)

Set 设置一个值

func (*Tree[K, V]) Size

func (t *Tree[K, V]) Size() int

Size 返回 KV 对的数量

func (*Tree[K, V]) Values

func (t *Tree[K, V]) Values() []V

Values 从低到高返回所有值。如果没有值, 则返回 nil

Jump to

Keyboard shortcuts

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