Beispiel #1
0
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;
}
Beispiel #2
0
int main() {

  Digraph G;
  
  G = DIGRAPHconstruct("grafo.txt");

  DIGRAPHshow(G);  

 
  return 0;
}
Beispiel #3
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;
     
}
Beispiel #4
0
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;
}