Function input: The function that implements Dijkstra's (function A) would take in the graph of pages and a starting vertex. The user would interact with another function (function B) which would take in a start and end page, and calls function A using the already generated graph and the start page.
Function output: Function A would return a vector of distances from the start to each node and a vector which determines the immediate predecessor of each vertex. Function B would return a vector generated by finding the path in the predecessor vector from function A which goes from the start to end pages.
From the proposal: