Skip to content
Snippets Groups Projects
Commit cdd6ad8a authored by Pedro Folloni Pesserl's avatar Pedro Folloni Pesserl
Browse files

fix union function temporarily

parent 6c9d784e
Branches
No related tags found
No related merge requests found
......@@ -138,23 +138,30 @@ conjunto_t *uniao_cjt(conjunto_t *c1, conjunto_t *c2) {
conjunto_t **menor_cjt = cardinalidade_cjt(c1) < cardinalidade_cjt(c2) ? &c1 : &c2;
conjunto_t **maior_cjt = cardinalidade_cjt(c1) > cardinalidade_cjt(c2) ? &c1 : &c2;
while (c1->ptr < cardinalidade_cjt(c1) && c2->ptr < cardinalidade_cjt(c2)) {
if (c1->v[c1->ptr] == c2->v[c2->ptr]) {
insere_cjt(uniao, c1->v[c1->ptr]);
c1->ptr++;
c2->ptr++;
} else {
if (c1->v[c1->ptr] < c2->v[c2->ptr]) {
insere_cjt(uniao, c1->v[c1->ptr]);
c1->ptr++;
} else {
insere_cjt(uniao, c2->v[c2->ptr]);
c2->ptr++;
}
}
}
/* while (c1->ptr < cardinalidade_cjt(c1) && c2->ptr < cardinalidade_cjt(c2)) { */
/* if (c1->v[c1->ptr] == c2->v[c2->ptr]) { */
/* insere_cjt(uniao, c1->v[c1->ptr]); */
/* c1->ptr++; */
/* c2->ptr++; */
/* } else { */
/* if (c1->v[c1->ptr] < c2->v[c2->ptr]) { */
/* insere_cjt(uniao, c1->v[c1->ptr]); */
/* c1->ptr++; */
/* } else { */
/* insere_cjt(uniao, c2->v[c2->ptr]); */
/* c2->ptr++; */
/* } */
/* } */
/* } */
/* TODO: arrumar isso aqui de cima ^ e apagar isso aqui de baixo v */
int i;
for (i = 0; i < cardinalidade_cjt(*menor_cjt); i++) {
insere_cjt(uniao, c1->v[i]);
insere_cjt(uniao, c2->v[i]);
}
for (i = cardinalidade_cjt(*menor_cjt); i < cardinalidade_cjt(*maior_cjt); i++) {
insere_cjt(uniao, (*maior_cjt)->v[i]);
}
......
No preview for this file type
......@@ -23,7 +23,7 @@ conjunto_t **le_vetor_conjuntos(int *tam, int max) {
int n, m;
scanf("%d", &n);
while (n) {
if ( !(vetor_c[*tam] = cria_cjt(10)) )
if ( !(vetor_c[*tam] = cria_cjt(15)) )
return NULL;
insere_cjt(vetor_c[*tam], n);
scanf("%d", &m);
......@@ -47,7 +47,7 @@ conjunto_t **libera_vetor_conjuntos(conjunto_t **vetor_c, int tam) {
conjunto_t *acha_solucao(conjunto_t **herois, conjunto_t *missao, conjunto_t **equipes, int tam_equipes) {
conjunto_t *menor;
menor = cria_cjt(10);
menor = cria_cjt(15);
conjunto_t *uniao_old;
conjunto_t *uniao;
int i, j;
......@@ -59,8 +59,8 @@ conjunto_t *acha_solucao(conjunto_t **herois, conjunto_t *missao, conjunto_t **e
uniao_old = uniao;
uniao = uniao_cjt(uniao, herois[equipes[i]->v[j] - 1]);
uniao_old = destroi_cjt(uniao_old);
}
/* realiza a uniao de todos os conjuntos de habilidades de heroi referenciados no conjunto equipe da posicao atual do vetor de equipes. */
}
if (contido_cjt(missao, uniao)) {
if (vazio_cjt(menor) || cardinalidade_cjt(equipes[i]) < cardinalidade_cjt(menor)) {
menor = destroi_cjt(menor);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment