From 1836fecd334fa6119c5866a3034257e68f828162 Mon Sep 17 00:00:00 2001
From: Leonardo Krambeck <lk19@inf.ufpr.br>
Date: Thu, 24 Oct 2019 16:20:34 -0300
Subject: [PATCH] implementa inicializa e cria main de testes

---
 lib_lista.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 main.c      |  12 +++++
 2 files changed, 147 insertions(+)
 create mode 100644 lib_lista.c
 create mode 100644 main.c

diff --git a/lib_lista.c b/lib_lista.c
new file mode 100644
index 0000000..ec5516e
--- /dev/null
+++ b/lib_lista.c
@@ -0,0 +1,135 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "lib_lista.h"
+
+/*
+  Cria uma lista vazia. Ela eh duplamente encadeada e tem sentinelas no
+  inicio e no final. Tambem tem um apontador para um elemento qualquer.
+*/
+int inicializa_lista(t_lista *l)
+{
+	t_nodo *sentinel;
+
+	/* Insert beginning sentinel */
+	sentinel = (t_nodo*) malloc (sizeof (t_nodo));
+
+	if (sentinel == NULL)
+		return 0;
+
+	sentinel->prev = l->ini;
+	l->ini = sentinel;
+	
+	/* Insert end sentinel */
+	sentinel = (t_nodo*) malloc (sizeof (t_nodo));
+
+	if (sentinel == NULL)
+		return 0;
+
+	l->ini->prox = sentinel;
+	sentinel->prev = l->ini;
+	l->fim = sentinel;
+
+	l->tamanho = 0;
+
+	return 1;
+}
+
+/*
+  Retorna 1 se a lista está vazia e zero caso contrário.
+*/
+int lista_vazia(t_lista *l){return 1;}
+
+/*
+  Remove todos os elementos da lista e faz com que ela aponte para NULL.
+*/
+void destroi_lista(t_lista *l){}
+
+/*
+  Insere o elemento item no início da lista.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int insere_inicio_lista(int item, t_lista *l){return 1;}
+
+/*
+  Retorna o tamanho da lista em *tam.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int tamanho_lista(int *tam, t_lista *l){return 1;}
+
+/*
+  Insere o elemento item no final da lista.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int insere_fim_lista(int item, t_lista *l){return 1;}
+
+/*
+  Insere o elemento item na lista de maneira que ela fique em ordem
+  crescente, do início para o final dela.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int insere_ordenado_lista(int item, t_lista *l){return 1;}
+
+/*
+  Remove o primeiro elemento da lista e o retorna em *item.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int remove_inicio_lista(int *item, t_lista *l){return 1;}
+
+/*
+  Remove o último elemento da lista e o retorna em *item.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int remove_fim_lista(int *item, t_lista *l){return 1;}
+
+/*
+  Se o elemento chave existir na lista, o retorna em *item.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário
+  (elemento não encontrado também retorna zero).
+*/
+int remove_item_lista(int chave, int *item, t_lista *l){return 1;}
+
+/*
+  Retorna 1 se o elemento contendo a chave chave existe na lista,
+  caso contrário retorna zero.
+*/
+int pertence_lista(int chave, t_lista *l){return 1;}
+
+/* 
+  Inicializa o ponteiro atual para o primeiro elemento da lista.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int inicializa_atual_inicio(t_lista *l){return 1;}
+
+/* 
+  Inicializa o ponteiro atual para o ultimo elemento da lista.
+  Retorna 1 se a operação foi bem sucedida e zero caso contrário.
+*/
+int inicializa_atual_fim(t_lista *l){return 1;}
+
+/*
+  Faz o ponteiro atual apontar para o próximo nodo da lista l e retorna 
+  este ponteiro. Se atual estiver apontando para o último, isto é, não 
+  tem próximo, retorna NULL.
+*/
+void incrementa_atual(t_lista *l){}
+
+/*
+  Faz o ponteiro atual apontar para o nodo anterior da lista l e retorna 
+  este ponteiro. Se atual estiver apontando para o primeiro, isto é, não 
+  tem anterior, retorna NULL.
+*/
+void decrementa_atual(t_lista *l){}
+
+/*
+  Retorna em *item o valor contido na chave apontada pelo ponteiro atual. 
+  Se atual não for válido a função retorna zero senão retorna 1.
+*/
+int consulta_item_atual(int *item, t_lista *atual){return 1;}
+
+/*
+  Remove o elemento apontado por atual da lista l e o retorna em *item.
+  Faz o atual apontar para o sucessor do nodo removido.
+  Retorna 1 se houve sucesso e zero caso contrário.
+*/
+int remove_item_atual(int *item, t_lista *l){return 1;}
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..04fc9b0
--- /dev/null
+++ b/main.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+#include "lib_lista.h"
+
+int main ()
+{
+	t_lista l;
+
+	if (inicializa_lista(&l)) printf ("inicializou\n");
+
+	return 0;
+}
-- 
GitLab