From 96731347a56d246d4a6790e94fd935e4f9352310 Mon Sep 17 00:00:00 2001 From: Marcus Silva Date: Sat, 16 Dec 2023 02:58:23 -0300 Subject: [PATCH] =?UTF-8?q?adcionando=20c=C3=B3digos=20da=20funcionalidade?= =?UTF-8?q?=2011?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Trabalho_T2/.vscode/settings.json | 3 + Trabalho_T2/data/in/binario6.bin | Bin 0 -> 37253 bytes Trabalho_T2/src/binario6.bin | Bin 0 -> 37253 bytes Trabalho_T2/src/funcionalidades.c | 23 ++++++- Trabalho_T2/src/grafo.c | 96 ++++++++++++++++++++++++++---- Trabalho_T2/src/grafo.h | 9 +++ Trabalho_T2/src/programaTrab | Bin 0 -> 47160 bytes 7 files changed, 120 insertions(+), 11 deletions(-) create mode 100644 Trabalho_T2/.vscode/settings.json create mode 100644 Trabalho_T2/data/in/binario6.bin create mode 100644 Trabalho_T2/src/binario6.bin create mode 100755 Trabalho_T2/src/programaTrab diff --git a/Trabalho_T2/.vscode/settings.json b/Trabalho_T2/.vscode/settings.json new file mode 100644 index 0000000..70e34ec --- /dev/null +++ b/Trabalho_T2/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "C_Cpp.errorSquiggles": "disabled" +} \ No newline at end of file diff --git a/Trabalho_T2/data/in/binario6.bin b/Trabalho_T2/data/in/binario6.bin new file mode 100644 index 0000000000000000000000000000000000000000..6578ad61c70af9adf536e71565526d88ccc0db93 GIT binary patch literal 37253 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 literal 0 HcmV?d00001 diff --git a/Trabalho_T2/src/binario6.bin b/Trabalho_T2/src/binario6.bin new file mode 100644 index 0000000000000000000000000000000000000000..6578ad61c70af9adf536e71565526d88ccc0db93 GIT binary patch literal 37253 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 literal 0 HcmV?d00001 diff --git a/Trabalho_T2/src/funcionalidades.c b/Trabalho_T2/src/funcionalidades.c index a2ca472..b84bc8e 100644 --- a/Trabalho_T2/src/funcionalidades.c +++ b/Trabalho_T2/src/funcionalidades.c @@ -31,5 +31,26 @@ void funcionalidade8(){ void funcionalidade9(){} void funcionalidade10(){} -void funcionalidade11(){} + +void funcionalidade11(){ + char *dataBIN = malloc(sizeof(char) * 40); + scanf("%s", dataBIN); + + FILE *dataFile = fopen(dataBIN, "rb"); + checkFile(dataFile); + + registroCab rC; + readCabecalho(&rC, dataFile); + verifyStatus(rC); + + int numVertices = rC.nroTecnologias; + grafo *grafoFinal = criarGrafo(numVertices); + + criarVetElementos(grafoFinal, numVertices, dataFile); + criarListaAdjacencia(grafoFinal, numVertices, dataFile); + + algoritmoDeTarjan(grafoFinal, numVertices); + +} + void funcionalidade12(){} \ No newline at end of file diff --git a/Trabalho_T2/src/grafo.c b/Trabalho_T2/src/grafo.c index 0ea2ef0..aeb1ae0 100644 --- a/Trabalho_T2/src/grafo.c +++ b/Trabalho_T2/src/grafo.c @@ -8,22 +8,22 @@ // Ponderado grafo *criarGrafo(int numVertices){ - grafo *novoGrafo = (grafo *) malloc(numVertices*sizeof(grafo)); + grafo *novografo = (grafo *) malloc(numVertices*sizeof(grafo)); - if (novoGrafo == NULL) + if (novografo == NULL) exit(0); for (int i = 0; i < numVertices; i++) { - novoGrafo[i].iVertice = -1; - novoGrafo[i].iAdjacente = NULL; - novoGrafo[i].grauEntrada = 0; - novoGrafo[i].grauGeral = 0; - novoGrafo[i].grauSaida = 0; - novoGrafo[i].iGrupo = -1; - novoGrafo[i].nomeOrigem = NULL; + novografo[i].iVertice = -1; + novografo[i].iAdjacente = NULL; + novografo[i].grauEntrada = 0; + novografo[i].grauGeral = 0; + novografo[i].grauSaida = 0; + novografo[i].iGrupo = -1; + novografo[i].nomeOrigem = NULL; } - return novoGrafo; + return novografo; } lista *criarNo(registro r){ @@ -205,4 +205,80 @@ void imprimirGrafo(grafo *g, int numVertices){ g[i].iAdjacente = g[i].iAdjacente->prox; } } +} + +void buscaEmProfundidade(grafo *g, int numVertices, int* ehFortementeConexo, int* numComponentes){ + int* cor = (int*)malloc(numVertices * sizeof(int)); + int* pre = (int*)malloc(numVertices * sizeof(int)); + int* low = (int*)malloc(numVertices * sizeof(int)); + + for(int i=0; inomeDestino; + int adj = -1; // Inicializa como -1, indicando que não encontrou o vértice + + // Procura o vértice no grafo + for (int j = 0; j < numVertices; j++) { + if (strcmp(g[j].nomeOrigem, nomeAdjacente) == 0) { + adj = j; + break; + } + } + + if (adj != -1) { + if (cor[adj] == BRANCO) { + visitaVertice(g, adj, numVertices,cor, pre, low, ehFortementeConexo, numComponentes); + low[i] = (low[i] < low[adj]) ? low[i] : low[adj]; + } else if (cor[adj] == CINZA) { + low[i] = (low[i] < pre[adj]) ? low[i] : pre[adj]; + } + } + + adjacente = adjacente->prox; + } + + cor[i] = PRETO; + + if (pre[i] == low[i]) { + (*numComponentes)++; + } + + // Se o número de componentes for igual ao número de vértices, o grafo é fortemente conexo + if (*numComponentes == numVertices) { + *ehFortementeConexo = 1; + } +} + +void algoritmoDeTarjan(grafo* g, int numVertices) { + int numComponentes = 0; + int* ehFortementeConexo = (int*)malloc(sizeof(int)); + *ehFortementeConexo = 1; + + buscaEmProfundidade(g, numVertices, ehFortementeConexo, &numComponentes); + + if(*ehFortementeConexo){ + printf("O grafo é fortemente conexo e tem %d componentes\n", numComponentes); + }else{ + printf("O grafo não é fortemente conexo e tem %d componentes\n", numComponentes); + } } \ No newline at end of file diff --git a/Trabalho_T2/src/grafo.h b/Trabalho_T2/src/grafo.h index fd389cc..3c13d17 100644 --- a/Trabalho_T2/src/grafo.h +++ b/Trabalho_T2/src/grafo.h @@ -1,6 +1,10 @@ #ifndef GRAFO_H #define GRAFO_H +#define BRANCO 0 +#define CINZA 1 +#define PRETO 2 + typedef struct lista{ char *nomeDestino; int pesoAresta; @@ -34,4 +38,9 @@ void quickSort(grafo *g, int baixo, int topo); void imprimirGrafo(grafo *g, int numVertices); void calculaGrau(grafo *g, int numVertices); +//void calculaMin(int a, int b); +void buscaEmProfundidade(grafo *g, int numVertices, int *ehFortementeConexo, int* numComponentes); +void visitaVertice(grafo* g, int i, int numVertices,int* cor, int* pre, int* low, int* ehFortementeConexo, int* numComponentes); +void algoritmoDeTarjan(grafo* g, int numVertices); + #endif \ No newline at end of file diff --git a/Trabalho_T2/src/programaTrab b/Trabalho_T2/src/programaTrab new file mode 100755 index 0000000000000000000000000000000000000000..c625297c5d24f19f2ace4173257511cb47f14f02 GIT binary patch literal 47160 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

=3p@|e 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%0A%2CFS?Z}B_+Xv+?@duMhM9dZn)x}tCSarM`fIfR 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 F{|}mRM;HJA literal 0 HcmV?d00001