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