Implementação de dijkstra com alguns erros!
#include
//#include
#include
#include
#define MAXN 20 // Máximo de nós e arestas
#define INFINITY INT_MAX
//===================
struct no{ int destino; struct no* prox;
};
typedef struct no* Vet;
//===================
/*******************************************/
Vet Aresta;
Vet Lista[MAXN]; // Vetor de Destinos
/*******************************************/
//========================================// void insereNo(Vet Lista[],int orig, int dest); void escolheCaminhos(Vet Lista[],int G[][MAXN],int INIT,int MAXNO); int tudoSelecionado(int *selecionado, int MAXNO); void imprimirCaminho(int *custo,int *anterior,int MAXNO,int *min,int *escolhido);
//========================================//
int main(){ int G[MAXN][MAXN]; // Matriz de Pesos int MAXNO,INIT,MAXL,i,j,k=0; //Tamanho(s) total(is) e contador(es) int ORIG,DEST,P; // Origem,destino,peso memset (G,0,sizeof(G)); // Zerar a matriz; ORIG=DEST=P=0; MAXNO = INIT = 0; MAXL = 0;
while(MAXNO = 20){ printf("Total de Nos:\t"); scanf("%d",&MAXNO); system("cls"); } while(INIT = 20){ printf("Iniciar a partir de:\t"); scanf("%d",&INIT); system("cls"); } while((MAXL < (MAXNO-1)) || (MAXL > int(((MAXNO*MAXNO)-MAXNO)/2))){ printf("Numero de Linhas:\t"); scanf("%d",&MAXL); system("cls"); } printf("Informe Valores (Origem Destino Peso):"); Lista[MAXNO] = (Vet) malloc((MAXNO+1)*sizeof(struct no)); memset(Lista,0,sizeof(struct no)); // Zerar a lista
//======================================================
while(k != MAXL){
// while((ORIG < 1 || ORIG > MAXNO) || (DEST < 1 || DEST > MAXNO) || (P < 1 || P > MAXNO)){ scanf("%d %d %d",&ORIG,&DEST,&P);
// } system("cls"); G[ORIG][DEST] = P; G[DEST][ORIG] = P; //if((ORIG < 1 || ORIG >