radix

package
v0.0.0-...-4a3d872 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Tree

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

Tree implements a radix tree. This can be treated as a Dictionary abstract data type. The main advantage over a standard hash map is prefix-based lookups and ordered iteration,

func New

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

New returns an empty Tree

func NewFromMap

func NewFromMap[T any](m map[string]T) *Tree[T]

NewFromMap returns a new tree containing the keys from an existing map

func (*Tree[T]) Delete

func (t *Tree[T]) Delete(s string) (removed T, hasRemoved bool)

Delete is used to delete a key, returning the previous value and if it was deleted

func (*Tree[T]) DeletePrefix

func (t *Tree[T]) DeletePrefix(s string) int

DeletePrefix is used to delete the subtree under a prefix Returns how many nodes were deleted Use this to delete large subtrees efficiently

func (*Tree[T]) Get

func (t *Tree[T]) Get(s string) (val T, found bool)

Get is used to lookup a specific key, returning the value and if it was found

func (*Tree[T]) Insert

func (t *Tree[T]) Insert(s string, v T) (old T, updated bool)

Insert is used to add a newentry or update an existing entry. Returns true if an existing record is updated.

func (*Tree[T]) Len

func (t *Tree[T]) Len() int

Len is used to return the number of elements in the tree

func (*Tree[T]) LongestPrefix

func (t *Tree[T]) LongestPrefix(s string) (pref string, val T, found bool)

LongestPrefix is like Get, but instead of an exact match, it will return the longest prefix match.

func (*Tree[T]) Maximum

func (t *Tree[T]) Maximum() (key string, val T, found bool)

Maximum is used to return the maximum value in the tree

func (*Tree[T]) Minimum

func (t *Tree[T]) Minimum() (key string, val T, found bool)

Minimum is used to return the minimum value in the tree

func (*Tree[T]) ToMap

func (t *Tree[T]) ToMap() map[string]T

ToMap is used to walk the tree and convert it into a map

func (*Tree[T]) Walk

func (t *Tree[T]) Walk() iter.Seq2[string, T]

Walk is used to walk the tree

func (*Tree[T]) WalkPath

func (t *Tree[T]) WalkPath(path string) iter.Seq2[string, T]

WalkPath is used to walk the tree, but only visiting nodes from the root down to a given leaf. Where WalkPrefix walks all the entries *under* the given prefix, this walks the entries *above* the given prefix.

func (*Tree[T]) WalkPrefix

func (t *Tree[T]) WalkPrefix(prefix string) iter.Seq2[string, T]

WalkPrefix is used to walk the tree under a prefix

Jump to

Keyboard shortcuts

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