https://github.com/t-lak/graphworks
Java implementation of some graph algorithms (Fleury, Kruskal, Prim, ...).
https://github.com/t-lak/graphworks
breadth-first-search eulerian-path fleury graph-algorithms graph-stream hierholzer java kruskal-algorithm minimal-spanning-tree prim-algorithm shortest-path shortest-path-algorithm
Last synced: 2 months ago
JSON representation
Java implementation of some graph algorithms (Fleury, Kruskal, Prim, ...).
- Host: GitHub
- URL: https://github.com/t-lak/graphworks
- Owner: T-Lak
- License: mit
- Created: 2021-09-26T16:34:07.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T17:43:24.000Z (3 months ago)
- Last Synced: 2025-02-04T18:28:21.781Z (3 months ago)
- Topics: breadth-first-search, eulerian-path, fleury, graph-algorithms, graph-stream, hierholzer, java, kruskal-algorithm, minimal-spanning-tree, prim-algorithm, shortest-path, shortest-path-algorithm
- Language: Java
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌐 GraphWorks
## Overview
This project implements several fundamental graph algorithms, organized into three categories:1. **Shortest Path:**
Find the shortest path between two nodes in a graph using **`Breadth-First Search (BFS)`**.
2. **Minimum Spanning Tree:**
Compute the minimal spanning tree of a graph using **`Kruskal's`** and **`Prim's`** algorithms.
3. **Eulerian Path:**
Determine a Eulerian path in a graph using **`Fleury's Algorithm`** and **`Hierholzer's Algorithm`**.
Additionally, this project allows for graph generation through two methods:
1. **File-based input:** Load graphs from a file.
2. **Random graph generation:** Generate graphs of various sizes for testing and illustration purposes.
Graphs can be visualized for better understanding and analysis using the built-in display functionality.
## Technologies Used
This project relies on the following libraries:
- **algs4.jar** - A collection of algorithms from [Princeton's Algorithms, Part I course](https://algs4.cs.princeton.edu/home/).
- **GraphStream (version 2.0)** - For graph visualization, utilizing core, algorithm, and UI components.
- **JUnit 4.13.1** - For unit testing and ensuring code reliability.
## Setup Instructions
To set up the project:
1. Download the required libraries:
- **algs4.jar:** [Download Link](https://algs4.cs.princeton.edu/home/)
- **GraphStream 2.0:** [GraphStream Website](https://graphstream-project.org/)
- **JUnit 4.13.1:** Available via [Maven Central](https://mvnrepository.com/artifact/junit/junit/4.13.2).
2. Add the libraries to your project’s classpath.
3. You should now be ready to run the algorithms and generate or load graphs for visualization and analysis.
## Example Usage
- You can either **load a graph from a file** or **generate a random graph of your choice**.
- Use the provided graph visualization tools to display and analyze the structure of the graph.
## License
This project is licensed under the MIT License.