Código Do Exercício 01 Do Trabalho 01 Da Disciplina Teoria Dos Grafos
Trabalho Universitário: Código Do Exercício 01 Do Trabalho 01 Da Disciplina Teoria Dos Grafos. Pesquise 861.000+ trabalhos acadêmicosPor: silviabd • 28/9/2014 • 505 Palavras (3 Páginas) • 406 Visualizações
/***************************************************************************
* Exercício 01 do trabalho 01 da disciplina Teoria dos grafos * *
* Última alteração: 01/05/2014 às 17:52 *
* Autora: Silvia Bortolote Desquiavoni - silviabortolote@gmail.com *
* *
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
struct vertice {
int qtdEntra;
int qtdSai;
};
typedef struct vertice Vertice;
struct lista {
int ini;
int fim;
struct lista* prox;
};
typedef struct lista Lista;
Lista* inicializa(void) {
return NULL;
}
/* inserção no início: retorna a lista atualizada */
Lista* insere(Lista* l, int ini, int fim) {
Lista* novo = (Lista*) malloc(sizeof(Lista));
novo->ini = ini;
novo->fim = fim;
novo->prox = l;
return novo;
}
/* função imprime: imprime valores dos elementos */
void imprime(Lista* l) {
Lista* p; /* variável auxiliar para percorrer a lista */
for (p = l; p != NULL; p = p->prox)
printf("[%d,%d]\n", p->ini, p->fim);
}
int main() {
FILE *arq = fopen("Itinerarios.txt", "r");
Lista* l; /* declara uma lista não inicializada */
l = inicializa(); /* inicializa lista como vazia */
int numT;
if (arq == NULL) {
printf(" Arquivo inexistente!\n");
} else {
int numeroTerminais, V1, V2;
if (fscanf(arq, "%d", &numeroTerminais) != 1) {
printf(" Arquivo Vazio!\n");
} else {
//printf("O número de terminais existentes são: %d", numeroTerminais);
numT = numeroTerminais;
char c;
while ((c = fgetc(arq)) != EOF) {
ungetc(c, arq);
fscanf(arq, "%d", &V1);
fgetc(arq);
fscanf(arq, "%d", &V2);
l = insere(l, V1, V2);
}
}
if (fclose(arq) == 0) {
//printf("\nArquivo fechado com sucesso!\n");
}
}
//imprime(l);
int cont, qtdIni, qtdFim;
int temComo = 1;
Vertice vetor[numT + 1];
for (cont = 1; cont <= numT; cont++) {
Lista* p; /* variável auxiliar para percorrer a lista */
qtdIni = 0;
qtdFim = 0;
for (p = l; p != NULL; p = p->prox) {
if (p->ini == cont)
...