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