algo

module
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 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
    • 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 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
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 grammar provides data types and algorithms for building parsers.
Package grammar 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.
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