algo

module
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2025 License: ISC

README

Go Doc Build Status Go Report Card Test Coverage

algo

A collection of common data structures and algorithms for Go applications.

Summary

  • Algorithms
    • Comparative Sorts
      • Selection Sort
      • Insertion Sort
      • Shell Sort
      • Merge Sort
      • Quick Sort
      • 3-Way Quick Sort
      • Heap Sort
    • Non-Comparative Sorts
      • Least Significant Digit
      • Most Significant Digit
      • 3-Way Quick Sort
    • Misc
      • Shuffle
      • Quick Select
  • Data Structures
    • Lists
      • Queue
      • Stack
    • Heaps
      • Binary Heaps
      • Binomial Heaps
      • Fibonacci Heaps
    • Sets
      • Union
      • Intersection
      • Difference
      • Powerset
      • Partitions
    • Range
      • Discrete
        • RangeList
        • RangeMap
      • Continuous
        • RangeList
        • RangeMap
    • Symbol Tables
      • Unordered
        • Separate Chaining Hash Table
        • Linear Probing Hash Table
        • Quadratic Probing Hash Table
        • Double Hashing Hash Table
      • Ordered
        • BST
        • AVL Tree
        • Red-Black Tree
        • Tries
          • Binary Trie
          • Patricia Trie
    • Graphs
      • Undirected Graph
      • Directed Graph
      • Weighted Undirected Graph
      • Weighted Directed Graph
    • Automata
      • DFA
      • NFA
    • Grammars
      • Context-Free Grammar
        • Chomsky Normal Form
        • Left Recursion Elimination
        • Left Factoring
        • FIRST and FOLLOW
  • Lexers
    • Two-Buffer Input Reader
  • Parsers
    • Parser Combinators
    • Predictive Parser
    • LR Parsers (SLR, LALR, Canonical LR)
      • Conflict Resolution

Development

Command Purpose
make test Run unit tests
make benchmark Run benchmarks
make coverage Run unit tests and generate coverage report

Directories

Path Synopsis
Package automata provides data structures and algorithms for working with automata.
Package automata provides data structures and algorithms for working with automata.
Package dot provides a basic implementation of the DOT language for visualizing graphs.
Package dot provides a basic implementation of the DOT language for visualizing graphs.
Package errors provides custom error types and functionalities to enhance error handling.
Package errors provides custom error types and functionalities to enhance error handling.
Package generic provides types, interfaces, and functions to support generic programming use cases.
Package generic provides types, interfaces, and functions to support generic programming use cases.
Package grammar implements data structures and algorithms for formal grammars.
Package grammar implements data structures and algorithms for formal grammars.
Package graph implements graph data structures and algorithms.
Package graph implements graph data structures and algorithms.
Package hash provides hash functions for standard Go types.
Package hash provides hash functions for standard Go types.
Package heap implements heap data structures.
Package heap implements heap data structures.
internal
parsertest
Package parsertest provides reusable test fixtures and utility functions used by other packages.
Package parsertest provides reusable test fixtures and utility functions used by other packages.
Package lexer defines abstractions and data types for constructing lexers.
Package lexer defines abstractions and data types for constructing lexers.
input
Package input implements a two-buffer input reader.
Package input implements a two-buffer input reader.
Package list implements list data structures.
Package list implements list data structures.
Package parser provides data types and algorithms for building parsers.
Package parser provides data types and algorithms for building parsers.
combinator
Package combinator provides data types and primitive constructs for building parser combinators.
Package combinator provides data types and primitive constructs for building parser combinators.
lr
Package lr provides common data structures and algorithms for building LR parsers.
Package lr provides common data structures and algorithms for building LR parsers.
lr/canonical
Package canonical provides data structures and algorithms for building Canonical LR parsers.
Package canonical provides data structures and algorithms for building Canonical LR parsers.
lr/lookahead
Package lookahead provides data structures and algorithms for building Look-Ahead LR (LALR) parsers.
Package lookahead provides data structures and algorithms for building Look-Ahead LR (LALR) parsers.
lr/simple
Package simple provides data structures and algorithms for building Simple LR (SLR) parsers.
Package simple provides data structures and algorithms for building Simple LR (SLR) parsers.
predictive
Package predictive provides data structures and algorithms for building predictive parsers.
Package predictive provides data structures and algorithms for building predictive parsers.
Package radixsort implements common radix sorting algorithms.
Package radixsort implements common radix sorting algorithms.
range
cont
Package cont provides algorithms and data structures for continuous ranges.
Package cont provides algorithms and data structures for continuous ranges.
disc
Package disc provides algorithms and data structures for discrete ranges.
Package disc provides algorithms and data structures for discrete ranges.
Package set implements a set data structure.
Package set implements a set data structure.
Package sort implements common sorting algorithms.
Package sort implements common sorting algorithms.
Package spatial implements spatial data structures.
Package spatial implements spatial data structures.
Package symboltable implements symbol table data structures.
Package symboltable implements symbol table data structures.
Package trie implements prefix tree data structures.
Package trie implements prefix tree data structures.
Package unionfind implements union-find data structures and algorithms.
Package unionfind implements union-find data structures and algorithms.

Jump to

Keyboard shortcuts

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