data-structure

module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2023 License: MIT

README

data-structure

GitHub Workflow Status Go Report Card GoDoc

Some data structures in go, using generics

Installation

go get github.com/Tv0ridobro/data-structure

Usage

List

l := list.New[int]()
l.PushBack(1)
l.PushBack(2)
l.PushFront(0)
fmt.Println(l.All()) // [0 1 2]
l.Reverse()
fmt.Println(l.All()) // [2 1 0]

Treap

t := treap.New[int]()
t.Insert(5)
t.Insert(8)
t.Insert(10)
t.Insert(19)
fmt.Println(t.Contains(5)) // true
t.Remove(5)
fmt.Println(t.Contains(5)) // false
fmt.Println(t.All()) // [8 10 19]

Segment-tree

// segment tree for sum
tree := segmenttree.New([]int{17, 2, 3, 4, 6, 0, 23, 30}, func(a, b int) int { return a + b }, 0)
fmt.Println(tree.Query(0, 7)) // 85 
fmt.Println(tree.Query(1, 6)) // 38
tree.Modify(2, 40)
fmt.Println(tree.Query(0, 7)) // 122
fmt.Println(tree.Query(2, 2)) // 40

Sparse-table

// sparse table for greatest common divisor
table := sparsetable.New(math.GCD, []int{2, 3, 5, 4, 6, 8, 16})
fmt.Println(table.Query(0, 2)) // 1
fmt.Println(table.Query(3, 5)) // 2
fmt.Println(table.Query(2, 3)) // 1
fmt.Println(table.Query(5, 6)) // 8

Directories

Path Synopsis
algorithm
graph
Package graphalgo implements different algorithms for working with graph.Graph.
Package graphalgo implements different algorithms for working with graph.Graph.
str
Package bloomfilter implements a bloom filter.
Package bloomfilter implements a bloom filter.
Package countminsketch implements a Count-Min Sketch: a probabilistic data structure that serves as a frequency table of events in a stream of data.
Package countminsketch implements a Count-Min Sketch: a probabilistic data structure that serves as a frequency table of events in a stream of data.
Package disjointset implements a disjoint set.
Package disjointset implements a disjoint set.
Package graph provides a generic implementation of a Graph data structure.
Package graph provides a generic implementation of a Graph data structure.
Package list implements a doubly linked list.
Package list implements a doubly linked list.
Package queue implements a queue.
Package queue implements a queue.
Package segmenttree implements a segment tree.
Package segmenttree implements a segment tree.
Package sieveoferatosthenes implements a sieve of eratosthenes.
Package sieveoferatosthenes implements a sieve of eratosthenes.
Package skiplist implements a skiplist.
Package skiplist implements a skiplist.
Package sparsetable implements a sparse table.
Package sparsetable implements a sparse table.
Package splaytree implements a splay tree.
Package splaytree implements a splay tree.
Package stack implements a stack.
Package stack implements a stack.
Package thinheap implements a thin heap.
Package thinheap implements a thin heap.
Package treap implements a treap.
Package treap implements a treap.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL