@@ -27,45 +27,6 @@ Pseudocodifica in C dell'algoritmo di Dijkstra con Esercizio di Default e Calcol
2727<img width =" 300 " src =" https://github.com/vittorioPiotti/Algoritmo-Dijkstra-C/blob/main/snap.png " />
2828
2929
30- ## Snippet Dijkstra Algorithm
31-
32- ``` c
33-
34- int dijkstra (struct ConnectedNodes connectedNodes[ ] , struct Paths paths[ ] , struct RoutingTables routingTables[ ] ,int start, int end,int nNodes){
35- int i = 0;
36- int j = 0;
37- int inx = 0;
38- int cost = 0;
39- int nPaths = 1;
40- for(i = 0; i < nNodes; i ++){
41- if(routingTables[ 0] .routingTable[ i] .id == start)routingTables[ 0] .routingTable[ i] .cost = 0;
42- }
43- do{
44- i = getInxMinCostNotExplored(routingTables[ 0] .routingTable,nNodes);
45- routingTables[ 0] .routingTable[ i] .used = USED;
46- if(routingTables[ 0] .routingTable[ i] .cost == MAX_COST + 1)cost = 0;
47- else cost = routingTables[ 0] .routingTable[ i] .cost;
48- if(connectedNodes[ i] .length != 0){
49- for(j = 0; j < connectedNodes[ i] .length; j ++){
50- inx = getInxRoutingTable(routingTables[ 0] .routingTable,connectedNodes[ i] .connections[ j] .id,nNodes );
51- if(connectedNodes[ i] .connections[ j] .cost + cost < routingTables[ 0] .routingTable[ inx] .cost){
52- routingTables[ 0] .routingTable[ inx] .cost = connectedNodes[ i] .connections[ j] .cost + cost;
53- routingTables[ 0] .routingTable[ inx] .prec = connectedNodes[ i] .id;
54- }else if(connectedNodes[ i] .connections[ j] .cost + cost == routingTables[ 0] .routingTable[ inx] .cost){
55- routingTables[ nPaths] .routingTable[ inx] .cost = connectedNodes[ i] .connections[ j] .cost + cost;
56- routingTables[ nPaths] .routingTable[ inx] .prec = connectedNodes[ i] .id;
57- nPaths++;
58- }
59- }
60- }
61- }while(allExplored(routingTables[ 0] .routingTable,nNodes) == NOT_USED);
62- if(nPaths > 1)fixRoutingTable(routingTables, nPaths, nNodes);
63- initPaths(routingTables, paths, nPaths, nNodes, start, end);
64- fixResults(routingTables, paths, nPaths, nNodes);
65- return nPaths;
66- }
67-
68- ```
6930
7031## Licenze
7132
0 commit comments