tree

package
v0.0.0-...-fa3f174 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNilTree     = errors.New("tree is nil")
	ErrNotFound    = errors.New("key not found in the tree")
	ErrEmpty       = errors.New("tree is empty")
	ErrOutOfBounds = errors.New("index is out of bounds")
)

Functions

This section is empty.

Types

type AvlTree

type AvlTree[Tk cmp.Ordered, Tv any] struct {
	// contains filtered or unexported fields
}

func NewAvlTree

func NewAvlTree[Tk cmp.Ordered, Tv any]() *AvlTree[Tk, Tv]

func NewFromSeq

func NewFromSeq[Tk cmp.Ordered, Tv any](seq iter.Seq2[Tk, Tv]) *AvlTree[Tk, Tv]

func (*AvlTree[Tk, Tv]) Add

func (t *AvlTree[Tk, Tv]) Add(key Tk, val Tv) (err error)

Write functions

func (*AvlTree[Tk, Tv]) AppendSeq

func (t *AvlTree[Tk, Tv]) AppendSeq(seq iter.Seq2[Tk, Tv])

func (*AvlTree[Tk, Tv]) At

func (t *AvlTree[Tk, Tv]) At(idx int) (Tk, Tv, error)

func (*AvlTree[Tk, Tv]) Backward

func (t *AvlTree[Tk, Tv]) Backward() func(yield func(Tk, Tv) bool)

func (*AvlTree[Tk, Tv]) Clear

func (t *AvlTree[Tk, Tv]) Clear()

func (*AvlTree[Tk, Tv]) Count

func (t *AvlTree[Tk, Tv]) Count(key Tk) int

func (*AvlTree[Tk, Tv]) CountLessThan

func (t *AvlTree[Tk, Tv]) CountLessThan(key Tk) int

func (*AvlTree[Tk, Tv]) CountMoreThan

func (t *AvlTree[Tk, Tv]) CountMoreThan(key Tk) int

func (*AvlTree[Tk, Tv]) Find

func (t *AvlTree[Tk, Tv]) Find(key Tk) (Tv, error)

func (*AvlTree[Tk, Tv]) FirstGreaterOrEqualThan

func (t *AvlTree[Tk, Tv]) FirstGreaterOrEqualThan(key Tk) (Tk, Tv, error)

func (*AvlTree[Tk, Tv]) FirstGreaterThan

func (t *AvlTree[Tk, Tv]) FirstGreaterThan(key Tk) (Tk, Tv, error)

func (*AvlTree[Tk, Tv]) IsEmpty

func (t *AvlTree[Tk, Tv]) IsEmpty() bool

func (*AvlTree[Tk, Tv]) Max

func (t *AvlTree[Tk, Tv]) Max() (Tk, Tv, error)

func (*AvlTree[Tk, Tv]) Min

func (t *AvlTree[Tk, Tv]) Min() (Tk, Tv, error)

func (*AvlTree[Tk, Tv]) Print

func (t *AvlTree[Tk, Tv]) Print()

func (*AvlTree[Tk, Tv]) Remove

func (t *AvlTree[Tk, Tv]) Remove(key Tk) (err error)

Write functions

func (*AvlTree[Tk, Tv]) Set

func (t *AvlTree[Tk, Tv]) Set(key Tk, val Tv) error

func (*AvlTree[Tk, Tv]) Size

func (t *AvlTree[Tk, Tv]) Size() int

func (*AvlTree[Tk, Tv]) Traverse

func (t *AvlTree[Tk, Tv]) Traverse(f func(Tk, Tv))

func (*AvlTree[Tk, Tv]) Values

func (t *AvlTree[Tk, Tv]) Values() func(yield func(Tk, Tv) bool)

type Tree

type Tree[Tk cmp.Ordered, Tv any] interface {
	// Read only
	Find(key Tk) (Tv, error)
	Min() (Tk, Tv, error)
	Max() (Tk, Tv, error)
	IsEmpty() bool
	Size() int
	Traverse(func(Tk, Tv))
	Values() func(yield func(Tk, Tv) bool)
	Backward() func(yield func(Tk, Tv) bool)
	AppendSeq(iter.Seq2[Tk, Tv])
	Print()
	Count(Tk) int
	CountLessThan(Tk) int
	CountMoreThan(Tk) int
	FirstGreaterThan(Tk) (Tk, Tv, error)
	FirstGreaterOrEqualThan(Tk) (Tk, Tv, error)
	At(int) (Tk, Tv, error)

	// Write functions
	Add(Tk, Tv) error
	Set(Tk, Tv) error
	Remove(Tk) error
	// RemoveAll(Tk) error
	Clear()
}

Jump to

Keyboard shortcuts

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