From ba1dcf6f9cf6c23409e307164067603621ab8f0c Mon Sep 17 00:00:00 2001 From: Pedro Folloni Pesserl <fpesserl7@gmail.com> Date: Thu, 1 Dec 2022 11:03:16 -0300 Subject: [PATCH] fix union function for real --- tp4/lib_conjunto.c | 43 ++++++++++++++++--------------------------- tp4/tp4 | Bin 30520 -> 30504 bytes 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/tp4/lib_conjunto.c b/tp4/lib_conjunto.c index c5416df..b88f1db 100644 --- a/tp4/lib_conjunto.c +++ b/tp4/lib_conjunto.c @@ -135,35 +135,24 @@ conjunto_t *uniao_cjt(conjunto_t *c1, conjunto_t *c2) { if ( !(uniao = cria_cjt(c1->max)) ) return NULL; - 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++; */ - /* } */ - /* } */ - /* } */ - - /* TODO: arrumar isso aqui de cima ^ e apagar isso aqui de baixo v */ + inicia_iterador_cjt(c1); + inicia_iterador_cjt(c2); - int i; - for (i = 0; i < cardinalidade_cjt(*menor_cjt); i++) { - insere_cjt(uniao, c1->v[i]); - insere_cjt(uniao, c2->v[i]); + 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++; + } else { + insere_cjt(uniao, c2->v[c2->ptr]); + c2->ptr++; + } } - - for (i = cardinalidade_cjt(*menor_cjt); i < cardinalidade_cjt(*maior_cjt); i++) { - insere_cjt(uniao, (*maior_cjt)->v[i]); + + conjunto_t **ainda_falta = c1->ptr == cardinalidade_cjt(c1) ? &c2 : &c1; + + int i; + for (i = (*ainda_falta)->ptr; i < cardinalidade_cjt(*ainda_falta); i++) { + insere_cjt(uniao, (*ainda_falta)->v[i]); } inicia_iterador_cjt(c1); diff --git a/tp4/tp4 b/tp4/tp4 index 0487535f0ba3e7e14013526730e2a1787577a66d..20a040c28befaad663997ebf45fbef3595571709 100755 GIT binary patch delta 2271 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 Bh)Mte delta 2086 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 bCVQ5dGftS?SZ2@oVe-K;d&cXN8OzlH#8gDK -- GitLab