Graph: Use map to store edges

The map uses destination node as key and contains edge weight.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Graph: Hold reverse edge mappings

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Graph: Add some useful graph methods

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
FibHeap: Fix compilation warning

Member initialization order must match declaration order in prototype.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
SearchResult: Rework SearchResult class

Now SearchResult contains only nodes between starting and destination
nodes. In addition, used container is changed to list.

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
main: Implement most of the node disjoint shorthest pair algorithm

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>
Add very simple Makefile

Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com>