/Graph-Algorithms

Graph algorithms: traversal algorithms, detecting cycle, finding diameter, shortest path algorithms, finding node metrics and coloring algorithms

Primary LanguageC++

Graph-Algorithms

A Graph Algorithm is an algorithm which solves a problem in a fundamental subcategory of Mathematics, Graph Theory.

This repository features all the favorite graph algorithms. Graphs are represented in CSR format to save space which is implemented using C++.

Graphs can either be constructed from scratch using addEdge function, or can be loaded from a file that contains the list of edges.

Algorithms

-Graph Traversal Algorithms: Breadth First Search (using queue), Depth First Search (using stack)

-Shortest Path Algorithms: Dijkstra, Bellman-Ford, Floyd-Warshall

-Minimum Spanning Tree: Kruskal Algorithm

-Cycle Detection Algorithm using DFS

-Graph Coloring Algorithms: Standard Greedy, Incidence, Saturation

-Graph Node Metrics: Closeness Centrality, Clustering Coefficient, Page Rank and Degree 1,2,3

-Finding Diameter of a Graph using BFS

-Finding the Number of Triangles in a Graph using matrix multiplication