An open API service indexing awesome lists of open source software.

https://github.com/eshaagarwa/metro_app

A simple Java project using πŸ•ΈοΈ Graph and πŸ”οΈ Heap data structures and 🧭 Dijkstra's algorithm, πŸ” DFS, 🧭 BFS, etc., algorithms to display the πŸš‡ shortest distance/path in Metro.
https://github.com/eshaagarwa/metro_app

dijkstra-algorithm dsa-algorithm graph heapsort-algorithm java

Last synced: 8 months ago
JSON representation

A simple Java project using πŸ•ΈοΈ Graph and πŸ”οΈ Heap data structures and 🧭 Dijkstra's algorithm, πŸ” DFS, 🧭 BFS, etc., algorithms to display the πŸš‡ shortest distance/path in Metro.

Awesome Lists containing this project

README

          

πŸ› οΈ Navigating the Metro with Java: **Metro App Project** πŸ› οΈ

πŸŽ‰ Hello there! I’m excited to present **Metro App**, a simple yet powerful **Java project** that demonstrates the use of **data structures** to solve a real-world problem πŸš‡. This project allows users to input the source and destination metro stations and displays both the **fare** and the **shortest route** between them. The application also features a metro map to enhance commuters' navigation experience 🌍.

πŸš€ **Project Features Overview** πŸš€

🌐 **Metro App Functionality** 🌐
- **Shortest Path Calculation**: By using different algorithms like **Dijkstra**, **BFS (Breadth-First Search)**, and **DFS (Depth-First Search)**, the shortest metro route between the source and destination stations is determined.
- **Fare Calculation**: The fare is dynamically calculated based on the total distance between the two stations.
- **Metro Map for Navigation**: A visual metro map aids in commuter navigation.

πŸ› οΈ **Core Concepts Used** πŸ› οΈ
The idea is implemented using **Graph** and **Heap** data structures:
- **Nodes**: Represent each metro station, containing information such as its name, metro corridor, and connecting lines.
- **Edges**: Represent the distance between two metro stations and the fare calculation based on the distance.

πŸ“œ **Main Algorithms & Files** πŸ“œ
- **Main.java**: Contains the primary code for executing the project logic.
- **Heap.java**: Implements the **heap** data structure used for optimizing path-finding algorithms.

πŸ› οΈ **Technologies Used** πŸ› οΈ
- **Java**: For building the entire metro app and implementing data structures.
- **Graph**: Represents metro stations and connections.
- **Heap**: Optimizes the shortest path algorithm.

πŸš€ **Requirements** πŸš€
- **IDE**: You can run the project on any IDE like **Eclipse**, **NetBeans**, or **VSCode**.
- **Java Knowledge**: You’ll need some basic understanding of **Java** programming, especially data structures.
- **Optional**: Knowledge of the **Java Collection Framework** will make things easier. If you are unfamiliar, check out [GeeksforGeeks](https://www.geeksforgeeks.org/collections-in-java-2/) to get started!

🌟 **All Set for Your Journey!** 🌟
Dive into this **Metro App** project and explore how graph theory and Java come together to solve practical problems. Happy coding! πŸš‡πŸ’»