From c413adfd4ddc03374676a1b1361c281afebc8f2f Mon Sep 17 00:00:00 2001
From: Pedro Folloni Pesserl <fpesserl7@gmail.com>
Date: Thu, 12 Jan 2023 20:45:56 -0300
Subject: [PATCH] liblef

---
 t1/libfila.c |   5 +--
 t1/liblef.c  |  93 ++++++++++++++++++++++++++++++++++++++++++++-------
 t1/teste     | Bin 22288 -> 0 bytes
 t1/teste.c   |  10 ------
 4 files changed, 84 insertions(+), 24 deletions(-)
 delete mode 100755 t1/teste
 delete mode 100644 t1/teste.c

diff --git a/t1/libfila.c b/t1/libfila.c
index 0341819..f6a067a 100644
--- a/t1/libfila.c
+++ b/t1/libfila.c
@@ -14,8 +14,9 @@ fila_t *cria_fila() {
 }
 
 fila_t *destroi_fila(fila_t *f) {
-	int i, e = 0, tamanho = tamanho_fila(f);
-	for (i = 0; i < tamanho; i++) {
+	int e = 0;
+
+	while (f->ini != NULL) {
 		retira_fila(f, &e);
 	}
 
diff --git a/t1/liblef.c b/t1/liblef.c
index 4d53fd0..b1a3582 100644
--- a/t1/liblef.c
+++ b/t1/liblef.c
@@ -1,26 +1,95 @@
 #include <stdlib.h>
+#include <string.h>
+#include "liblef.h"
 
 lef_t *cria_lef() {
-	/*TODO: não implementado*/
-	return NULL;
+	lef_t *l;
+	if ( !(l = malloc(sizeof(lef_t))) )
+		return NULL;
+
+	l->Primeiro = NULL;
+	
+	return l;
 }
 
 lef_t *destroi_lef(lef_t *l) {
-	/*TODO: não implementado*/
+	nodo_lef_t *aux;
+	while (l->Primeiro != NULL) {
+		aux = l->Primeiro;
+		l->Primeiro = l->Primeiro->prox;
+		free(aux->evento);
+		free(aux);
+	}
+
+	free(l);
+
 	return NULL;
 }
 
-int adiciona_inicio_lef (lef_t *l, evento_t *evento) {
-	/*TODO: não implementado*/
-	return 0;
+int adiciona_inicio_lef(lef_t *l, evento_t *evento) {
+	nodo_lef_t *novo_nodo;
+	if ( !(novo_nodo = malloc(sizeof(nodo_lef_t))) )
+		return 0;
+	
+	evento_t *novo_evento;
+	if ( !(novo_evento = malloc(sizeof(evento_t))) ) {
+		free(novo_nodo);
+		return 0;
+	}
+
+	memcpy(novo_evento, evento, sizeof(evento_t));
+
+	novo_nodo->evento = novo_evento;
+
+	novo_nodo->prox = l->Primeiro;
+	l->Primeiro = novo_nodo;
+
+	return 1;
 }
 
-int adiciona_ordem_lef (lef_t *l, evento_t *evento) {
-	/*TODO: não implementado*/
-	return 0;
+int adiciona_ordem_lef(lef_t *l, evento_t *evento) {
+	nodo_lef_t *novo_nodo;
+	if ( !(novo_nodo = malloc(sizeof(nodo_lef_t))) )
+		return 0;
+	
+	evento_t *novo_evento;
+	if ( !(novo_evento = malloc(sizeof(evento_t))) ) {
+		free(novo_nodo);
+		return 0;
+	}
+
+	memcpy(novo_evento, evento, sizeof(evento_t));
+	
+	novo_nodo->prox = l->Primeiro;
+	novo_nodo->evento = novo_evento;
+
+	if (novo_nodo->prox == NULL) {
+		l->Primeiro = novo_nodo;
+		return 1;
+	}
+
+	nodo_lef_t *atual = l->Primeiro;
+	
+	while (atual->prox && atual->prox->evento->tempo < novo_nodo->evento->tempo)
+		atual = atual->prox;
+
+	novo_nodo->prox = atual->prox;
+	atual->prox = novo_nodo;
+
+	return 1;
 }
 
-evento_t *obtem_primeiro_lef (lef_t *l) {
-	/*TODO: não implementado*/
-	return NULL;
+evento_t *obtem_primeiro_lef(lef_t *l) {
+	if (l->Primeiro == NULL)
+		return NULL;
+	
+	nodo_lef_t *aux = l->Primeiro;
+	
+	evento_t *e = l->Primeiro->evento;
+	
+	l->Primeiro = l->Primeiro->prox;
+
+	free(aux);
+
+	return e;
 }
diff --git a/t1/teste b/t1/teste
deleted file mode 100755
index 381c674840818c707f985538d6e15643b0e32691..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22288
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
EFKNVTVE_OC

diff --git a/t1/teste.c b/t1/teste.c
deleted file mode 100644
index 764bb16..0000000
--- a/t1/teste.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-/* #include "libconjunto.h" */
-/* #include "libfila.h" */
-#include "liblef.h"
-
-int main() {
-
-	return 0;
-}
-- 
GitLab