import "github.com/zyedidia/generic/trie"
Package trie provides an implementation of a ternary search trie.
Example
package main
import (
"fmt"
"github.com/zyedidia/generic/trie"
)
func main() {
tr := trie.New[int]()
tr.Put("foo", 1)
tr.Put("fo", 2)
tr.Put("bar", 3)
fmt.Println(tr.Contains("f"))
fmt.Println(tr.KeysWithPrefix(""))
fmt.Println(tr.KeysWithPrefix("f"))
}
false
[bar fo foo]
[fo foo]
- type Trie
- func NewV any *Trie[V]
- 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'.
func (*Trie[V]) Size
func (t *Trie[V]) Size() int
Size returns the size of the trie.
Generated by gomarkdoc