#include <stdio.h>
#include <stdlib.h>
#include <stdio_ext.h>
#include "lista.c"

/*
* =================================================
*    Filename:  .c
* Description:
*     Created:  dd/mm/18 hh:mm
* =================================================
*/

int imprime_op();

int main(int argc, char **argv)
{
	int elemento = 0, op = -1;

	Lista L1 = cria_lista();

	while(op != 5)
	{
        system("clear");
		op = imprime_op();
		switch(op)
		{
			case 1:
				printf("Elemento a ser inserido: ");
				scanf("%d", &elemento);
				if(insere_elem(L1, elemento))
					printf("Elemento inserido!\n");
				else
					printf("Elemento nao inserido!\n");
				getchar();
				break;
			case 2:
				printf("Qual elemento sera removido? ");
				scanf("%d", &elemento);
				if(remove_elem(L1, elemento))
					printf("Elemento removido\n");
				else
					printf("Elemento nao removido\n");
				getchar();
				break;
			case 3:
				printf("Qual elemento ira ser retirada todas ocorrencias? ");
				scanf("%d", &elemento);
				if(remove_todos(L1, elemento))
					printf("Elementos removidos!\n");
				else
					printf("Os elementos não foram removidos\n");
			case 4:
				system("clear");
				print_lista(L1);
				getchar();
				system("clear");
				break;
		}
		free(L1);
	}
    return 0;
}

int imprime_op()
{
	int op;

	do
	{
		printf("---------------- Qual a operacao? -----------------\n");
		printf("[1] - Inserir um elemeto à lista\n");
		printf("[2] - Remover um elemento da lista\n");
		printf("[3] - Remover todas as ocorrencias do elemento na lista\n");
		printf("[4] - Imprimir a lista\n");
		printf("[5] - Sair do programa\n");
		printf("Operacao: "); setbuf(stdin,NULL);
		scanf("%d", &op);
	} while(op < 0 || op > 5);

	return op;
}

