# README
trie
import "github.com/ccheers/xpkg/generic/containerx/trie"
Package trie provides an implementation of a ternary search trie.
Example
package main
import (
"fmt"
"github.com/ccheers/xpkg/generic/containerx/trie"
)
func main() {
tr := trie.New[int]()
tr.Put("f§oo", 1)
tr.Put("f§o", 2)
tr.Put("bar", 3)
fmt.Println(tr.Contains("§"))
fmt.Println(tr.KeysWithPrefix(""))
fmt.Println(tr.KeysWithPrefix("f§"))
}
Output
false
[bar f§o f§oo]
[f§o f§oo]
Index
- type Trie
- [func NewV any *Trie[V]](<#func-new>)
- func (t *Trie[V]) Contains(key string) bool
- func (t *Trie[V]) Get(key string) (v V, ok bool)
- func (t *Trie[V]) Keys() (queue []string)
- func (t *Trie[V]) KeysWithPrefix(prefix string) (queue []string)
- func (t *Trie[V]) LongestPrefix(query string) string
- func (t *Trie[V]) Put(key string, val V)
- func (t *Trie[V]) Remove(key string)
- func (t *Trie[V]) Size() int
type Trie
A Trie is a data structure that supports common prefix operations.
type Trie[V any] struct {
// contains filtered or unexported fields
}
func New
func New[V any]() *Trie[V]
New returns an empty trie.
func (*Trie[V]) Contains
func (t *Trie[V]) Contains(key string) bool
Contains returns whether this trie contains 'key'.
func (*Trie[V]) Get
func (t *Trie[V]) Get(key string) (v V, ok bool)
Get returns the value associated with 'key'.
func (*Trie[V]) Keys
func (t *Trie[V]) Keys() (queue []string)
Keys returns all keys in the trie.
func (*Trie[V]) KeysWithPrefix
func (t *Trie[V]) KeysWithPrefix(prefix string) (queue []string)
KeysWithPrefix returns all keys with prefix 'prefix'.
func (*Trie[V]) LongestPrefix
func (t *Trie[V]) LongestPrefix(query string) string
LongestPrefix returns the key that is the longest prefix of 'query'.
func (*Trie[V]) Put
func (t *Trie[V]) Put(key string, val V)
Put associates 'val' with 'key'.
func (*Trie[V]) Remove
func (t *Trie[V]) Remove(key string)
Remove removes the value associated with 'key', along with any nodes of the key that are no longer used.
func (*Trie[V]) Size
func (t *Trie[V]) Size() int
Size returns the size of the trie.
Generated by gomarkdoc
# Functions
New returns an empty trie.