ATPS ESTRUTURA DE DADOS
Exames: ATPS ESTRUTURA DE DADOS. Pesquise 862.000+ trabalhos acadêmicosPor: leokrusty • 3/12/2013 • 1.173 Palavras (5 Páginas) • 389 Visualizações
#include <stdio.h>
#include <stdlib.h>
#define vertice 10
#define aresta 1000
#define true 1
#define false 0
#define MAX_NODES 1024
#define INFINITY 1000000000
typedef float distancia;
typedef struct {
distancia dist[vertice][vertice];
char cidades[10][30];
int numVertices;
int numAresta;
} GRAFO;
typedef struct GRAFO *grafo;
int menu ()
{
}
void Inicializa(GRAFO *g)
{
int i, j;
for (i = 0; i <=11; i++)
for (j = 0; j <=11; j++)
g->dist[i][j] = 0;
}
void montagrafo(GRAFO *g)
{
int i,j,codA, codB;
float dist;
char nome[30];
for (i=0;i<10;i++)
{
printf("Digite o nome da %d cidade: ", i+1);
scanf("%s", g->cidades[i]);
//strcpy(nome, g->cidades[i]);
}
for (j=0;j<aresta;j++)
{
printf("Digite o numero das cidades que possuem ligacao(0 para sair):\nCidade A: ");
scanf("%d", &codA);
if (codA == 0)
{
return;
}
else
{
printf("Cidade B: ");
scanf("%d", &codB);
printf("Digite a distancia entre elas: ");
scanf("%f", &dist);
g->dist[codA-1][codB] = dist;
g->dist[codB-1][codA] = dist;
}
}
}
void imprimegrafo(GRAFO *g)
{
int i, j;
for (i = 0; i <10; i++)
{
if(i==0)
printf("\t1 2 3 4 5 6 7 8 9 10\n",i+1);
if(i<9)
printf(" ");
for (j = 0 ; j <= 10; j++)
{
if (j==0)
printf(" %d ", j+i+1);
else{
printf(" %.1f", g->dist[i][j]);
if (j==10)
printf("\n");
}
}
}
}
void caminhaGrafo (int s, int t, int path[])
{
int n, dist[MAX_NODES][MAX_NODES];
struct state {
...