int main(void){
	Lista* l;
	l = listaCria();
	inserirNoFinal(l, 10);
	inserirNoFinal(l, 20);
	inserirNoFinal(l, 30);
	inserirNoFinal(l, 40);
	removeElemento(l, 20);
	alteraElemento(l, 40, 44);
	inserirQualquer(l, 44, 55);
	inserirNoFinal(l, 60);
	listaImprime(l);
	listaQntd(l);
	listaPosicao(l, 44);
	listaLibera(l);
	return 0;
}
int main(){
    struct no *inicio, *p;// Ponteiros para tipos struct no
    int i, opcao, elemento;
    
    // Inicializando o ponteiro com o valor NULL
    inicio = NULL;
    //
    do {
        system("cls");
        printf("==================================================================\n");
    	printf(" \t\tESCOLHA A OPCAO:");
        printf("\n==================================================================");
        printf("\n\n 1 - Adicionar elemento");
        printf("\n------------------------------------------------------------------");
        printf("\n 2 - Mostrar elementos");
        printf("\n------------------------------------------------------------------");
        printf("\n 3 - Liberar memoria");
        printf("\n------------------------------------------------------------------");
        printf("\n 4 - Mostrar a quantidade de elementos");
        printf("\n------------------------------------------------------------------");
        printf("\n 5 - Mostrar a media");
        printf("\n------------------------------------------------------------------");
        printf("\n 6 - Adicionar elemento no final");
        printf("\n------------------------------------------------------------------");
        printf("\n 7 - Buscar Elemento");        
        printf("\n------------------------------------------------------------------");
        printf("\n 8 - Apagar Elemento");   
        printf("\n------------------------------------------------------------------");
        printf("\n 9 - Apagar o Ultimo Elemento");   
        printf("\n------------------------------------------------------------------");
        printf("\n 10 - Apagar o Primeiro Elemento");   
        printf("\n------------------------------------------------------------------");        
        printf("\n 11 - Inserir Elemento no meio");   
        printf("\n------------------------------------------------------------------");         
        printf("\n 0 - Sair \n\n -> ");
        scanf("%d", &opcao);
        //
        switch (opcao){
               case 0:
                   printf("\n O programa sera encerrado");
                   break;
               case 1: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserir_inicio(&inicio, elemento);                 
                   break;
               case 2:
                   mostra(inicio);
                   break;
               case 3:
                   liberaMemoria(&inicio);
                   break;
               case 4:
                   printf(" %d elementos", contar(inicio));
                   getch();
                   break;    
               case 5:
                   printf(" Media: %.f", media(inicio));
                   getch();
                   break;    
               case 6: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserirNoFinal(&inicio, elemento);
                   printf("\t Inserido \n");
                   getch();
                   break;
               case 7: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   printf(" %d", buscar(inicio, elemento));
                   getch();
                   break;
               case 8: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   apagarElemento(&inicio, elemento);
                   getch();
                   break;
               case 9: 
                   if (inicio == NULL) {
                      printf("\n A lista esta vazia");
                   }
                   else {
                        printf("Elemento lemento %d removido.\n", removeUltimo(&inicio));
                   }
                   getch();
                   break;
               case 10: 
                   if (inicio == NULL) {
                      printf("\n A lista esta vazia");
                   }
                   else {
                        printf("Elemento lemento %d removido.\n", removePrimeiro(&inicio));
                   }
                   getch(); 
                   break;
               case 11: 
                   printf("Entre com o elemento\n");
                   scanf("%d", &elemento);
                   inserirNoMeio(&inicio, elemento);
                   printf("\t Inserido \n");
                   getch();
                   break;                                     
               default:
                   printf("\n\n Opcao invalida!!");
                   getch();
                   break;
       }     
    }
        
    while(opcao != 0);
   
    printf("\n");
        
    getch();
    return 0;
}