#include "lista_ord.h"

int imprime_op()
{
	int op;

	do
	{
		printf("---------------- Qual a operacao? -----------------\n");
		printf("Lista Ordenada...\n");
		printf("[1] - Inserir um elemento à lista\n");
		printf("[2] - Remover um elemento da lista\n");
		printf("[3] - Intercalar elementos\n");
		printf("[4] - Remover os elementos pares\n");
		printf("[5] - Mostrar o maior elemento da lista\n");
		printf("[6] - Mostrar a quantidade de elementos da lista\n");
		printf("[7] - Verificar se as listas são iguais\n");
		printf("[8] - Imprimir lista atual\n");
		printf("[9] - Sair do programa\n");
		printf("Operacao: "); setbuf(stdin,NULL);
		scanf("%d", &op);
	} while(op < 0 || op > 11);

	return op;
}


int main(void)
{
	int elemento, op = -1;
	Lista L1 = cria_lista();

	system("clear");
	while(op != 10)
	{
		op = imprime_op();
		switch(op)
		{
			case 1:
				printf("Elemento a ser inserido: ");
				scanf("%d", &elemento);
				if(insere_ord(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_ord(L1, elemento))
					printf("Elemento removido\n");
				else
					printf("Elemento nao removido\n");
				getchar();
				break;
			case 3:
				printf("Intercalando listas...\n");
				//scanf("%d", &elemento);
				if(intercala_lista(L1, L2))
					printf("Elementos intercalaods!\n");
				else
					printf("Os elementos não foram intercalaods\n");
				break;
			case 4:
				printf("Removendo elementos pares...\n");
				if(insere_inicio(L1, elemento))
					printf("Os elementos pares foram removidos!\n");
				else
					printf("Os elementos pares não foram removidos!\n");
				break;
			case 5:
				maior_elem_lista(L1);
				break;
			case 6:
				tamanho_lista(L1);
				break;
			case 7:
				if(is_lista_igual(L1,L2))
					printf("As listas são iguais.\n");
				else
					printf("As listas nao são iguais.\n");
				break;
			case 8:
				system("clear");
				imprime_lista(L1);
				break;
		}
		setbuf(stdin,NULL);
		if(op == 10)
			return 0;
		getchar();
		system("clear");
	}
	free(L1);
	free(L2);
	return 0;
}


