Skip to content
/ phtree Public

PH-tree (Permutation Hierarchical Tree) implementation in Go.

License

Notifications You must be signed in to change notification settings

0xnu/phtree

Repository files navigation

phtree

Release Go Report Card Go Reference License

PH-tree (Permutation Hierarchical Tree) implementation in Go.

Features

  • Insertion and search operations for multi-dimensional keys
  • Removal of key-value pairs from the tree
  • Configurable maximum depth of the tree
  • Thread-safe concurrent access to the tree
  • Efficient handling of high-dimensional and sparse data

Installation

Install the phtree package in your Go project by installing it with the following command:

go get github.com/0xnu/phtree

Usage

Here's a basic example of how to use the phtree package:

package main

import (
	"fmt"
	"github.com/0xnu/phtree"
)

func main() {
	tree := phtree.New(phtree.WithMaxDepth(8))

	tree.Insert([]uint64{0, 1, 2}, "apple")
	tree.Insert([]uint64{0, 1, 3}, "banana")

	value := tree.Search([]uint64{0, 1, 2})
	fmt.Println(value) // Output: "apple"

	tree.Remove([]uint64{0, 1, 3})
}

Check out the examples directory for more detailed usage and examples.

Testing

To run the tests for the PH-Tree package, use the following command:

go test

Performance

To run the benchmarking code, you can use the following command:

go run benchmark/benchmark.go

License

This project is licensed under the MIT License.

Copyright

(c) 2024 Finbarrs Oketunji.

About

PH-tree (Permutation Hierarchical Tree) implementation in Go.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages