1
votes

First, I would like to make sure I got the structure correct. As far as I know, an adjacency list representing a graph looks like this:

an adjacent list

AdjList is an ArrayList, where each element is an object. Each object contains an ArrayList inside to represent vertices connected. So for example, in the image above, Vertext 1 (first index in the AdjList) is connected to the vertex at index 2, 4, and 5 of the AdjList. Is this representation of an adjacency list correct? (ps: I know indices start at 0, i put 1 here for simplicity/ease).

If it is correct, which algorithm should I use to find the shortest path between two vertices?

3

3 Answers

4
votes

There is no algorithm to give you just the shortest path between two vertices. You can use either:

  1. Dijkstra's algorithm to find the shortest path between one vertex and all the others (and then choose the one you need).
  2. Roy-Floyd algorithm to find the shortest path between all possible pairs of vertices.

The links also include pseudocode.

2
votes

Here's an example for Dijkstra's shortest path algorithm in java along with explanations

1
votes

You can use Dijkstra's and Floyd Warshall. For unweighed graph assume weight of each edge to be 1 and apply the algorithm.