This repository contains both graph algorithm implementations as well as a fully-functioning library implementing graphs through adjacency lists.
The library provides a comprehensive set of functionalities to:
- Create and manipulate directed and undirected graphs
- Perform basic graph traversals
- Apply graph algorithms
This library implements graphs through adjacency lists, providing efficient operations.
- Clone the repository:
git clone https://github.com/VicAlexandre/graph_theory.git- Navigate and compile:
cd graph_theory
makeThis will compile the library and all available examples.
- Test the library:
./testThis will automatically compile both the library and the driver test code.
To use the library in your project, include the necessary header files and link against the provided static library.
This project is a work-in-progress. Feedback, suggestions, and contributions are highly appreciated.
- Graph representation through adjacency lists of both directed and undirected graphs
- Simple graph printing
- Insertion and deletion of vertices and edges
- DFS example
- Kosaraju's algorithm for strongly connected components example
- Implement BFS
- Implement graph algorithms (Dijkstra, Prim, Kruskal, etc.)
- More generic graph representation
- Tests
- Proper documentation
- More examples
- Static allocation options for the whole library with emphasis on embedded systems