Skip to content

JosuaRieder/Quiver

Repository files navigation

Quiver

GitHub License

Quiver is a graph theory library written in C++20. Work in progress.

Features

Containers

  • Adjacency List
  • Adjacency Matrix
  • Disjoint Set
  • Binary Heap
  • Fibonacci Heap

Graph Generators

  • Linear Graphs
  • Cycle Graphs
  • Wheel Graphs
  • Complete Graphs
  • Complete Bipartite Graphs

Graph Search

  • Breadth first search
  • Depth first search
  • Dijkstra's algorithm

Minimum Spanning Tree

  • Kruskal's algorithm
  • Prim's algorithm
  • Count MSTs

Max Flow

  • Edmonds-Karp algorithm
  • Dinic's algorithm
  • Push-Relabel algorithm

Graph Operations

  • Vertex contraction
  • Vertex cleaving
  • Complement
  • Transpose
  • Graph power
  • Transitive closure
  • Union
  • Intersection
  • Join
  • Product

Graph Minors

  • Minor check
  • Planarity check

Connected Components

  • Count connected components
  • Split into connected components

Strongly Connected Components

  • Count strongly connected components
  • Split into strongly connected components

Spectral Graph Theory

  • Laplacian Matrix

Miscellaneous

  • Topological Sorting
  • Regularity
  • Strong regularity
  • Isomorphism check
  • Coloring algorithms

About

A graph theory library in C++20

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published