Go package to implement a number of tree data structures. Note: A number of comparators are able to be passed into the trees' constructors. Please see tree.go in each package for more information.
- Binary Search Tree
Example usage:
import github.com/chancetudor/trees/bst
tree := bst.NewWithIntComparator()
returnedKey, err := tree.Insert(key, value)
exists := tree.Search(returnedKey)
newVal := tree.Update(returnedKey, newVal)
returnedVal, err := tree.ReturnNodeValue(returnedKey)
deletedKey, err := tree.Delete(returnedKey)
rootNode := tree.Root()
treeSize := tree.Size()
emptyFlag := tree.IsEmpty()
tree.Clear()
- Red-Black Tree
Example usage:
import github.com/chancetudor/trees/rbt
tree := rbt.NewWithIntComparator()
returnedKey, err := tree.Insert(key, value)
exists := tree.Search(returnedKey)
newVal := tree.Update(returnedKey, newVal)
returnedVal, err := tree.ReturnNodeValue(returnedKey)
deletedKey, err := tree.Delete(returnedKey)
rootNode := tree.Root()
treeSize := tree.Size()
emptyFlag := tree.IsEmpty()
balancedFlag := tree.IsBalanced()
blackHeight := tree.BlackHeight()
tree.DepthFirstTraversal()
tree.InOrderTraversal()
tree.Clear()
- AVL Tree
Example usage:
import github.com/chancetudor/trees/avl
tree := avl.NewWithIntComparator()
returnedKey, err := tree.Insert(key, value)
exists := tree.Search(returnedKey)
newVal := tree.Update(returnedKey, newVal)
returnedVal, err := tree.ReturnNodeValue(returnedKey)
deletedKey, err := tree.Delete(returnedKey)
rootNode := tree.Root()
treeSize := tree.Size()
emptyFlag := tree.IsEmpty()
balancedFlag := tree.IsBalanced()
tree.DepthFirstTraversal()
tree.InOrderTraversal()
tree.Clear()
- Trie
- Min heap
- Max heap
- Binomial heap
- Fibonacci heap