A console application to display Dijkstra or the Bellman Ford algorithm step by step in a table.
The code is not optimized at all. But it's intended to be used on small graphs anyway, so it doesn't have to be.
Please do not use this in production as is.
Requires the .Net 7 Sdk. But will propably compile just fine in 6 or 5.
If you simply want to run the application:
dotnet run
Run following command to generate an executable:
dotnet build
To target a specific platform use the --os parameter.
i.e. to build a linux executable:
dotnet build --os linux
After building your graph you can expect an output like the following.
Dijkstra:
start vertex [A/B/C/D/F/H/E/G]: A
|queue |B |C |D |F |H |E |G |
A|B,C, |1,A |3,A |inf |inf |inf |inf |inf |
B|C,D,E, |1,A |3,A |2,B |inf |inf |7,B |inf |
D|C,E,F, |1,A |3,A |2,B |4,D |inf |7,B |inf |
C|E,F,G, |1,A |3,A |2,B |4,D |inf |4,C |7,C |
E|F,G, |1,A |3,A |2,B |4,D |inf |4,C |6,E |
F|G,H, |1,A |3,A |2,B |4,D |12,F |4,C |6,E |
G|H, |1,A |3,A |2,B |4,D |8,G |4,C |6,E |
H| |1,A |3,A |2,B |4,D |8,G |4,C |6,E |
show path to vertex [A/B/C/D/F/H/E/G/back]: G
A,C,E,G,
Bellman Ford:
start vertex [A/B/C/D/F/H/E/G]: A
iter.|B |C |D |F |H |E |G |
0 |1,A |3,A |2,B |4,D |8,G |4,C |6,E |
1 |1,A |3,A |2,B |4,D |8,G |4,C |6,E |
show path to vertex [A/B/C/D/F/H/E/G/back]: G
A,C,E,G,
Add one or multiple edges: a [Vertex1](<)->[Vertex2],[Cost] ([VertexX](<)->[VertexY],[Cost] ...)
-> for directed edges and <-> for undirected edges
Examples:
a A->B,1
a A<->B,9
a A->B,2 B->C,1
Query used to create graph in preview section:
a A<->B,1 A<->C,3 B<->D,1 D<->F,2 F<->H,8 B<->E,6 C<->E,1 C<->G,4 E<->G,2 F<->H,8 G<->H,2
Run s when you finished building your graph to start the solving algorithm.