Beispiel #1
0
void main() {
    Tipo_Grafo *grafo;
    int tamanho = tam_arquivo("tspfase8.txt");
    grafo = cria_grafo(tamanho);
    ler_arquivo("tspfase8.txt", grafo, tamanho);
    termina_grafo(grafo, tamanho);
}
Beispiel #2
0
grafo le_grafo(FILE *input){
	if (!input)
		return NULL;
	
	Agraph_t *Ag = agread(input, NULL);
	
	if(!Ag)
		return NULL;

	grafo g = cria_grafo(agnameof(Ag), agisdirected(Ag), contem_pesos(Ag), agnnodes(Ag));

	for (Agnode_t *Av=agfstnode(Ag); Av; Av=agnxtnode(Ag,Av)) {
        	cria_vertice(g, agnameof(Av));
	}

    	for (Agnode_t *Av=agfstnode(Ag); Av; Av=agnxtnode(Ag,Av)) {
       		for (Agedge_t *Ae=agfstout(Ag,Av); Ae; Ae=agnxtout(Ag,Ae)) {
           		vertice u = v_busca(g, agnameof(agtail(Ae)));
           		vertice v = v_busca(g, agnameof(aghead(Ae)));
           		cria_vizinhanca(g, u, v, get_peso(Ae));
       		}
    	}
	
	agclose(Ag);
	agfree(Ag, NULL);
	return g;
}  
Beispiel #3
0
int main(){
	char labirinto[Lin][Col];
	int s;
	int x, y;
	Grafo *cria_grafo(int nro_vertices, int grau_max);
	Grafo *gro;
	
	gro = cria_grafo(10, 7);
	insereAresta(gr, 0, 1);
	insereAresta(gr, 1, 3);
	removeAresta(gr, 0, 1);	

	Grafo* gr = cria_grafo(5, 5);
	insereAresta(gr, 0, 1);
	insereAresta(gr, 1, 3);
	insereAresta(gr, 1, 2);
	insereAresta(gr, 2, 4);
	insereAresta(gr, 3, 0);
	insereAresta(gr, 3, 4);
	insereAresta(gr, 4, 1);

	int vis[5];

/*	CriarLabirinto();
	s = 1+rand() % Lin-2;
	Rota(s, 1);
	labirinto[s][1] = 'T'; //inicio do caminho

	Imprimir();
	x=s;
	y=1;*/

	print_grafo(gr);

	buscaProfundidade_Grafo(gr, 0, vis);

	libera_Grafo(gr);

	return 0;
}
Beispiel #4
0
grafo copia_grafo(grafo g){
	if(!g)
		return NULL;
	
	grafo copy = cria_grafo(g->nome, g->direcionado, g->ponderado, (int)g->n_vertices);

    	if(copy == NULL){
    		printf("Sem memoria para alocar.\n");
    	}else{
		copy->n_vertices = g->n_vertices;
		copy->n_arestas = g->n_arestas;

		for(unsigned int i = 0; i < g->n_vertices; i++){
			copy->vertices[i] = g->vertices[i];
		}
	}
	return copy;
	free(copy);
}
Beispiel #5
0
int main(int argc, char *argv[]){

	int op, vertice_inicial, vertice_final, i, qtd_v;
	printf("1 - BUSCA EM LARGURA\n");
	printf("2 - BUSCA EM PROFUNDIDADE\n");
	printf("3 - SAIR\n");
	scanf("%d", &op);
	if(op == 3) return 0;
	
	Vetor *grafo; 
	grafo = cria_grafo();
	printf("alou mulheres\n");
	qtd_v = qtd_vertices();

	printf("INFORME O VERTICE INICIAL DA BUSCA\n");
	scanf("%d", &vertice_inicial);
	printf("INFORME O VETICE FINAL DA BUSCA\n");
	scanf("%d", &vertice_final);

	if(op == 1){
		busca_largura(grafo, vertice_inicial, vertice_final, qtd_v);
	}
	else if(op == 2){
		busca_profundidade(grafo, vertice_inicial, vertice_final, qtd_v);
	}
	else{
		printf("OPCAO INVALIDA\n");
		return 0;
	}
	
	int x = vertice_final;
	printf("====: %d\n", vertice_final);
	while(grafo[x].pai != -1){
		printf("====: %d\n", grafo[x].pai);
		x = grafo[x].pai;
	}
	printf("==== custo:: %d\n", grafo[vertice_final].custo);	
	return 0;
}