Detecção de ciclos em um grafo

846 palavras 4 páginas
//trabalho de ed2
//mostrar os ciclos existentes em um grafo

#include
#include

int vi;

struct aresta{ int destino; float custo; struct aresta *prox;
};

struct vertice{ int origem; struct aresta *arestas; struct vertice *prox;
}*grafo = NULL;

struct pilha{ int vertice; struct pilha *prox;
}*caminho = NULL;

struct ciclo{ struct pilha *vertices; struct ciclo *prox;
}*ciclos = NULL;

void inicializar_aresta(struct aresta *&a){ struct aresta *t; while (a != NULL){ t = a; a = a->prox; delete(t); }
}

void inicializar_vertice(struct vertice *&g){ struct vertice *t; while (g != NULL){ t = g; g = g->prox; inicializar_aresta(t->arestas); delete(t); }
}

void inicializar_pilha(struct pilha *&l){ struct pilha *p; while (l != NULL){ p = l; l = l->prox; delete(p); }
}

void inicializar_ciclo(struct ciclo *&l){ struct ciclo *p; while (l != NULL){ p = l; l = l->prox; delete(p); }
}

void empilha(struct pilha *&l, int i){ struct pilha *p, *n; n = new(struct pilha); n->vertice = i; n->prox = NULL; if (l != NULL){ for (p = l; (p->prox != NULL); p = p->prox); p->prox = n; } else{ l = n; }
}

int desempilha(struct pilha *&l){ struct pilha *a, *p; int vertice;

if(l != NULL){ for (a = NULL, p = l; (p->prox != NULL); a = p, p = p->prox); vertice = p->vertice; if(a != NULL) a->prox = NULL; else l = NULL;

Relacionados

  • UNIDADE 2 ASPECTOS TEORICOS DA COMPUTA O
    1419 palavras | 6 páginas
  • Algoritmo do banqueiro
    1400 palavras | 6 páginas
  • MANUAL TÉCNICO SOBRE SINCRONIZAÇÃO E INSEMINAÇÃO ARTIFICIAL EM TEMPO FIXO (IATF)
    5808 palavras | 24 páginas
  • Lava-rápido
    2169 palavras | 9 páginas
  • A IMPORTÂNCIA DOS MARCADORES TUMORAIS NO DIAGNÓSTICO E PROGNÓSTICO DO CÂNCER DE MAMA
    5311 palavras | 22 páginas
  • Radio
    6627 palavras | 27 páginas
  • EAD 2014
    3893 palavras | 16 páginas
  • reiki
    19195 palavras | 77 páginas
  • Modelagem Bancada Festo - Redes de Petri
    3063 palavras | 13 páginas
  • celula de manufatura flexivel
    5727 palavras | 23 páginas