Documente Academic
Documente Profesional
Documente Cultură
*/
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#include <math.h>
#include <time.h>
#include "pqueue.h"
#include "matrix.c"
#define DIM 5
ia
#define NC 100
#define NUMNODES (1 << DIM)
er
typedef struct {
int label;
double x, y;
} Point;
gn
typedef struct {
double **m, *potentials;
int numnodes, *path, patlen;
} Graph;
huge = NC;
re
dij->potentials[0] = 0.0;
dij->path[0] = -1;
for (n = 1; n < dij->numnodes; n++) {
dij->potentials[n] = huge;
dij->path[n] = -1;
}
ve
-1-
C:\Users\domen\Documents\Algoritmi e Strutture Dati\Miei Codici\COMPITI DA STAMPARE\21012015-1.c venerdì 29 gennaio 2016 17:04
ia
}
init(&g);
return g;
er
}
/*
void dijkstraP(Graph *dij, int n) {
int k;
double cost;
gn
for (k = 0; k < dij->numnodes; k++) {
cost = dij->potentials[n] + dij->m[n][k];
if (cost < dij->potentials[k]) {
dij->potentials[k] = cost;
dij->path[k] = n;
printf("%d > %d (%3.2lf)\n", n, k, cost);
dijkstraP(dij, k);
ge
}
}
}*/
void dijkstraA(Graph *dij, int n) {
int k;
In
double cost;
PQNode *pq = NULL;
dij->path[k] = n;
pq = pushPQ(pq, k, cost);
}
}
i = t;
printf("PATH: ");
while (i >= 0) {
printf("%d", i);
i = dij->path[i];
}
putchar('\n');
return dij->potentials[t];
-2-
C:\Users\domen\Documents\Algoritmi e Strutture Dati\Miei Codici\COMPITI DA STAMPARE\21012015-1.c venerdì 29 gennaio 2016 17:04
ia
er
gn
ge
In
re
ve
Vi
-3-