int main() { Digraph A = DIGRAPHinit(DIGRAPH_VALUES); static int lbl[DIGRAPH_VALUES]; // Variavel para a busca em profundidade DIGRAPHinsertA(A,0,0); DIGRAPHinsertA(A,1,2); DIGRAPHinsertA(A,2,2); DIGRAPHinsertA(A,3,5); DIGRAPHinsertA(A,4,5); DIGRAPHinsertA(A,5,3); DIGRAPHinsertA(A,4,5); DIGRAPHshow(A); int line,col; for(line=0;line<6;line++) { printf("\n"); for(col=0;col<6;col++) printf("%d",A->adj[line][col]); } printf("\n\n"); DOT_OUTPUT(A); printf("\nResultado: %d",DIGRAPHreach(A,2,2,lbl)); return 0; }
int main() { Digraph G; G = DIGRAPHconstruct("grafo.txt"); DIGRAPHshow(G); return 0; }
void DIGRAPHreverse(Digraph G){ //Digraph G2; int i, j; int m[G->V][G->V]; for (i = 0; i < G->V; i++) for (j = 0; j < G->V; j++) { if (G->adj[i][j] == 1) { G->adj[i][j] = 0; m[j][i] = 1; } } for (i = 0; i < G->V; i++) for (j = 0; j < G->V; j++) { if (m[i][j] == 1) { G->adj[i][j] = 1; } } DIGRAPHshow(G); //return G; }
int main(int argc, char *argv[]){ int i; Digraph G = DIGRAPHinit(5); if(argc>1){ for(i=0; i<argc; i++) printf("%s ", argv[i]); printf("\n"); } DIGRAPHinsert(G,0,1); DIGRAPHinsert(G,0,3); DIGRAPHinsert(G,2,4); DIGRAPHinsert(G,4,1); GRAPHinsert(G,2,3); DIGRAPHshow(G); /* DIGRAPHremove(G,0,1); DIGRAPHremove(G,0,3); DIGRAPHremove(G,0,4); DIGRAPHremove(G,2,1); DIGRAPHremove(G,4,2); DIGRAPHremove(G,3,4); DIGRAPHshow(G); printf("\n"); GRAPHremove(G,2,3); GRAPHremove(G,1,4); DIGRAPHshow(G); */ if(DIGRAPHpath(G,0,4)) printf("Existe caminho de 0 --> 4\n"); else printf("Não existe caminho de 0 --> 4\n"); if(DIGRAPHpath(G,1,4)) printf("Existe caminho de 1 --> 4\n"); else printf("Não existe caminho de 1 --> 4\n"); printf("\n"); GRAPHinsert(G,1,3); DIGRAPHshow(G); if(DIGRAPHpath(G,1,4)) printf("Existe caminho de 1 --> 4\n"); else printf("Não existe caminho de 1 --> 4\n"); if(DIGRAPHcycle(G)) printf("Existe ciclo em G\n"); else printf("Não existe ciclo em G\n"); printf("\n"); printf("\n"); DIGRAPHremove(G,3,1); DIGRAPHremove(G,3,2); DIGRAPHshow(G); if(DIGRAPHcycle(G)) printf("Existe ciclo em G\n"); else printf("Não existe ciclo em G\n"); printf("\n"); return 0; }