Skip to content

Commit ad12d2e

Browse files
committed
warnings are gone
1 parent 4277474 commit ad12d2e

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

grafo.c

+30-16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
#include <graphviz/cgraph.h>
33
#include <stdio.h>
44
#include <stdlib.h>
5+
#include <string.h>
6+
7+
char rec_name[14] = "info_vertice";
58

69
typedef struct {
710
Agrec_t header;
@@ -12,6 +15,7 @@ typedef struct {
1215
typedef struct {
1316
Agrec_t header;
1417
int criada;
18+
int padding;
1519
} info_aresta;
1620

1721
static int backtrack_conexo(grafo g, vertice atual, int *contador_vertices); // funcao que auxilia a funcao "conexo"
@@ -24,7 +28,8 @@ void assign(grafo g, vertice u, vertice root, grafo subgrafo);
2428
grafo le_grafo(void)
2529
{
2630
grafo g = agread(stdin, NULL);
27-
aginit(g, AGNODE, "info_vertice", sizeof(info_vertice), TRUE);
31+
// strcpy(rec_name, "info_vertice");
32+
aginit(g, AGNODE, rec_name, sizeof(info_vertice), TRUE);
2833
return g;
2934
}
3035
//------------------------------------------------------------------------------
@@ -149,11 +154,12 @@ int completo(grafo g) {
149154
int conexo(grafo g)
150155
{
151156
info_vertice *info;
157+
// strcpy(rec_name, "info_vertice");
152158

153159
for (vertice v = agfstnode(g); v; v = agnxtnode(g,v))
154160
{
155-
//info = agbindrec(v, "info_vertice", sizeof(info_vertice), TRUE);
156-
info = (info_vertice *) aggetrec(v, "info_vertice", TRUE);
161+
//info = agbindrec(v, rec_name, sizeof(info_vertice), TRUE);
162+
info = (info_vertice *) aggetrec(v, rec_name, TRUE);
157163
info->contado = 0;
158164
}
159165

@@ -165,7 +171,8 @@ int conexo(grafo g)
165171
static int backtrack_conexo(grafo g, vertice atual, int *contador_vertices) // funcao que auxilia a funcao "conexo"
166172
{
167173
info_vertice *info;
168-
info = (info_vertice*) aggetrec(atual, "info_vertice", TRUE);
174+
// strcpy(rec_name, "info_vertice");
175+
info = (info_vertice*) aggetrec(atual, rec_name, TRUE);
169176

170177
if (info->contado == 0) // contabiliza o vertice
171178
{
@@ -195,10 +202,11 @@ static int backtrack_conexo(grafo g, vertice atual, int *contador_vertices) // f
195202
/// funcao auxiliar que checa se o componente do vertice v é um subgrafo bipartido.
196203
int bipartido(grafo g) {
197204
info_vertice *info;
205+
// strcpy(rec_name, "info_vertice");
198206

199207
for (vertice v = agfstnode(g); v; v = agnxtnode(g,v))
200208
{
201-
info = (info_vertice *) aggetrec(v, "info_vertice", TRUE);
209+
info = (info_vertice *) aggetrec(v, rec_name, TRUE);
202210
info->contado = -1;
203211
}
204212

@@ -214,7 +222,8 @@ int bipartido(grafo g) {
214222

215223
static int backtrack_bipartido(grafo g, vertice v, int cor_atual) {
216224
info_vertice *info;
217-
info = (info_vertice *) aggetrec(v, "info_vertice", TRUE);
225+
// strcpy(rec_name, "info_vertice");
226+
info = (info_vertice *) aggetrec(v, rec_name, TRUE);
218227
if (info == NULL) {
219228
printf("eita\n");
220229
}
@@ -332,7 +341,9 @@ int **matriz_adjacencia(grafo g)
332341
// -----------------------------------------------------------------------------
333342
grafo complemento(grafo g)
334343
{
335-
grafo h = agopen("complemento", g->desc, NULL);
344+
char complemento[13] = "complemento";
345+
char aresta[7] = "aresta";
346+
grafo h = agopen(complemento, g->desc, NULL);
336347

337348
// criando o mesmo numero de nodos no novo grafo
338349
for (vertice v = agfstnode(g); v; v = agnxtnode(g, v)) {
@@ -344,7 +355,7 @@ grafo complemento(grafo g)
344355
if (ga != gb && ha != hb) {
345356
if (!agedge(g, ga, gb, NULL, 0)) {
346357
// se nao existe no original, existe no complemento
347-
agedge(h, ha, hb, "aresta", 1);
358+
agedge(h, ha, hb, aresta, 1);
348359
}
349360
}
350361
}
@@ -357,7 +368,8 @@ grafo complemento(grafo g)
357368
void visit(grafo g, vertice u, vertice* stack, int* topo_stack)
358369
{
359370
info_vertice *info;
360-
info = (info_vertice *) aggetrec(u, "info_vertice", TRUE);
371+
// strcpy(rec_name, "info_vertice");
372+
info = (info_vertice *) aggetrec(u, rec_name, TRUE);
361373

362374
// If u is unvisited then:
363375
if (info->contado == 0)
@@ -379,13 +391,14 @@ void visit(grafo g, vertice u, vertice* stack, int* topo_stack)
379391
void assign(grafo g, vertice u, vertice root, grafo subgrafo)
380392
{
381393
info_vertice *info_root;
382-
info_root = (info_vertice *) aggetrec(root, "info_vertice", TRUE);
394+
// strcpy(rec_name, "info_vertice");
395+
info_root = (info_vertice *) aggetrec(root, rec_name, TRUE);
383396

384397

385398
// For each in-neighbour v of u, do Assign(v,root)
386399
for (Agedge_t *e = agfstin(g, u); e; e = agnxtin(g, e)) // esse agnxtout funciona?
387400
{
388-
info_vertice *info_prox = (info_vertice *) aggetrec(e->node, "info_vertice", TRUE);
401+
info_vertice *info_prox = (info_vertice *) aggetrec(e->node, rec_name, TRUE);
389402

390403
if (info_prox->componente == 0) {
391404
// não definiu o componente ainda
@@ -411,17 +424,18 @@ void assign(grafo g, vertice u, vertice root, grafo subgrafo)
411424
grafo decompoe(grafo g)
412425
{
413426
info_vertice *info;
427+
// strcpy(rec_name, "info_vertice");
414428

415429
// For each vertex u of the graph, mark u as unvisited. Let L be empty.
416430
for (vertice v = agfstnode(g); v; v = agnxtnode(g,v))
417431
{
418-
info = (info_vertice *) aggetrec(v, "info_vertice", TRUE);
432+
info = (info_vertice *) aggetrec(v, rec_name, TRUE);
419433
info->contado = 0; // nao visitado
420434
info->componente = 0; // nao faz parte de nenhum componente
421435
}
422436

423437
// "stack" L?
424-
vertice *stack = (vertice*) calloc(agnnodes(g), sizeof(vertice));
438+
vertice *stack = (vertice*) calloc((size_t)agnnodes(g), sizeof(vertice));
425439
int topo_stack = 0;
426440

427441
// For each vertex u of the graph do Visit(u)
@@ -436,17 +450,17 @@ grafo decompoe(grafo g)
436450
while (topo_stack != 0) {
437451
vertice u = stack[--topo_stack];
438452

439-
info_vertice *info = (info_vertice *) aggetrec(u, "info_vertice", TRUE);
453+
info_vertice *info2 = (info_vertice *) aggetrec(u, rec_name, TRUE);
440454

441-
if (info->componente == 0) {
455+
if (info2->componente == 0) {
442456
// Cria um subgrafo de g para servir de componente.
443457
grafo s = agsubg(g, NULL, TRUE);
444458

445459
// adiciona u a seu próprio componente
446460
agsubnode(s, u, TRUE);
447461

448462
// seta um novo id para o componente
449-
info->componente = ++id_componente;
463+
info2->componente = ++id_componente;
450464

451465
assign(g, u, u, s);
452466
}

grafo.o

106 KB
Binary file not shown.

teste

76.8 KB
Binary file not shown.

teste.o

84.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)