This project is a Kotlin implementation of Dijkstra's algorithm to find the shortest path in a directed, weighted graph. It features several core data structures built from scratch.
AdjacencyListGraph: A generic class for representing a directed, weighted graph.
MinHeap: A generic min-heap data structure built from the ground up.
HeapPriorityQueue: A generic priority queue built using the MinHeap as its engine.
Dijkstra: The main algorithm function that uses the above components to find the shortest path between two vertices.