int main() { //system("title Aluno: Carlos Alberto Costa de Oliveira Júnior"); //system("color 0a"); setlocale(LC_ALL, ""); int num = 0; // Declaração do número de opções que o usuário vai inserir para entrar no menu do { printf(" ╔═══════════════ Operações em Grafos ════════════════╗\n"); printf(" ║ ║\n"); printf(" ║ 1- Encontrar caminho mais curto ║\n"); printf(" ║ 2- Calcular numero de componentes conexos ║\n"); printf(" ║ 3- Encontrar caminho mais curto entre 2 vertices ║\n"); printf(" ║ 4- Encontrar Árvore geradora minima ║\n"); printf(" ║ 5- Sair ║\n"); printf(" ║ ║\n"); printf(" ╚════════════════════════════════════════════════════╝"); do { printf("\n Digite um número da lista:"); fflush(stdin); scanf("%i", &num); fflush(stdin); switch (num) { case 1: limpartela(); caminho_curto(); break; case 2: limpartela(); calcular_componentes(); break; case 3: limpartela(); caminho_mais_curto(); break; case 4: limpartela(); arvore_geradora_minima(); break; case 5: break; } }while (num < 1 || num > 5); }while (num != 5); limpartela(); printf("\n FIM DE EXECUCAO"); return 0; }
//------------------------------------------------------------------------------ int main(void) { struct grafo *g, *d, *c; struct vertice *v; struct no *n; lista l; g = le_grafo(stdin); escreve_grafo(stdout, g); if((l = ordena(g)) != NULL) { for(n = primeiro_no(l); n != NULL; n = proximo_no(n)) { v = (struct vertice *) conteudo(n); fprintf(stdout, "%s\n", nome_vertice(v)); } destroi_lista(l, nao_destroi_nos); } if((l = componentes(g)) != NULL) { for(n = primeiro_no(l); n != NULL; n = proximo_no(n)) { c = (struct grafo *) conteudo(n); escreve_grafo(stdout, c); } destroi_lista(l, destroi_grafo); } d = arvore_geradora_minima(g); if(d != NULL) { escreve_grafo(stdout, d); destroi_grafo(d); } /* d = arborescencia_caminhos_minimos(g, v); if(d != NULL) { escreve_grafo(stdout, d); destroi_grafo(d); } */ d = distancias(g); if(d != NULL) { escreve_grafo(stdout, d); destroi_grafo(d); } fprintf(stdout, "Diametro = %ld\n", diametro(g)); if(conexo(g)) { fprintf(stdout, "Conexo!\n"); } else { fprintf(stdout, "Não é conexo!\n"); } if(fortemente_conexo(g)) { fprintf(stdout, "Fortemente conexo!\n"); } else { fprintf(stdout, "Não é fortemente conexo!\n"); } /*if((l_blocos = blocos(g)) != NULL) { fprintf(stderr, "\n--Blocos criados:\n" ); for(n = primeiro_no(l); n != NULL; n = proximo_no(n)) { c = (struct grafo *) conteudo(n); escreve_grafo(stdout, c); } destroi_lista(l_blocos, destroi_grafo); }*/ destroi_grafo(g); return 0; }