https://github.com/gdiasag/graph-repr
Algorithms and Data Structures related to the representation and manipulation of graphs
https://github.com/gdiasag/graph-repr
data-structures graph-algorithms graph-theory
Last synced: about 3 hours ago
JSON representation
Algorithms and Data Structures related to the representation and manipulation of graphs
- Host: GitHub
- URL: https://github.com/gdiasag/graph-repr
- Owner: gdiasag
- License: mit
- Created: 2023-08-21T22:19:18.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-06T02:24:12.000Z (over 2 years ago)
- Last Synced: 2026-02-24T08:52:49.446Z (4 months ago)
- Topics: data-structures, graph-algorithms, graph-theory
- Language: C
- Homepage:
- Size: 98.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# graph-repr
[](https://github.com/gustavodiasag/graph-repr/actions/workflows/cmake-multi-platform.yml)
This initial version of the project is composed of one representation for directed graphs and the chu-liu-edmonds algorithm for finding the minimum spanning tree of a given digraph.
The chosen representation is an adaptation derived from a somewhat generic graph implementation provided by Kyle Loudon on his book [Mastering Algorithms in C](https://everythingcomputerscience.com/books/Mastering-Algorithms-with-C-Loudon.pdf), which defines an adjacency list where each of its elements is structured as an origin vertex and a set of the vertices that the origin contains an edge to.
The algorithm for finding a directed MST is derived from Jack Edmonds' paper [Optimum Branchings](https://nvlpubs.nist.gov/nistpubs/jres/71B/jresv71Bn4p233_A1b.pdf), along with a list of other sources, such as:
- [Edmonds' algorithm](https://en.wikipedia.org/wiki/Edmonds%27_algorithm).
* [Graph-based Dependency Parsing](https://courses.cs.washington.edu/courses/cse490u/17wi/slides/CLE.pdf).
- [danieldk/chu-liu-edmonds](https://github.com/danieldk/chu-liu-edmonds/blob/main/src/lib.rs).
# Build
In order to build and compile the project, CMake must be installed. After setting it up, build the project as follows:
```bash
git clone https://github.com/gustavodiasag/graph-repr.git
cd graph-repr/
mkdir build
cd build
cmake ..
cmake --build .
```
# License
This project is licensed under the [MIT License](LICENSE).