chancetudor / trees

Go package to implement a number of tree data structures.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

trees

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.

Currently available

  • 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()

In progress

  • Trie
  • Min heap
  • Max heap
  • Binomial heap
  • Fibonacci heap

About

Go package to implement a number of tree data structures.

License:GNU General Public License v3.0


Languages

Language:Go 100.0%