void escolhe(node* Lista, int resposta)
{
    switch(resposta)
    {
        case 0:
            esvaziaLista(Lista);
            break;
        case 1:
            exibeLista(Lista);
            break;
        case 2:
            novoComeco(Lista);
            break;
        case 3:
            novoFinal(Lista);
            break;
        case 4:
            removePrimeiro(Lista);
            break;
        case 5:
            removeUltimo(Lista);
            break;
        case 6:
            novaPosicao(Lista);
            break;
        case 7:
            removePosicao(Lista);
            break;
        case 8:
            criaLista(Lista);
            break;
        default:
            puts("\nOpção inválida! Verifique novamente as opções apresentadas.");
    }
}
void removePosicao(node* Lista)
{
    if(vazia(Lista))
        puts("\nA lista está vazia! Adicione um item usando as outras opções antes.");
    else
    {
        node* tmp = (node*)malloc(sizeof(node));
        if(!tmp)
        {
            puts("\nNão há memória suficiente!");
            exit(1);
        }
        else
        {
            node* tmp = Lista->prox;
            int indice = 0, resposta;

            while(tmp->prox != NULL)
            {
                tmp = tmp->prox;
                indice++;
            }

            printf("\nInsira a posição: "); scanf("%d", &resposta);

            if(resposta > indice || resposta < 0)
                puts("\nA lista não tem esse comprimento!");
            else
            {
                if(resposta == 0)
                    removePrimeiro(Lista);
                else
                {
                    indice = 0;

                    node* atual = Lista->prox;
                    node* anterior = Lista;
                    while(indice < resposta)
                    {
                        anterior = atual;
                        atual = atual->prox;
                        indice++;
                    }
                    anterior->prox = atual->prox;
                }
            }
        }
    }
}
예제 #3
0
void escolhe(int resposta, node* Fila)
{
    switch(resposta)
    {
        case 0:
            limpaFila(Fila);
            break;
        case 1:
            exibeFila(Fila);
            break;
        case 2:
            novoFinal(Fila);
            break;
        case 3:
            removePrimeiro(Fila);
            break;
        case 4:
            criaFila(Fila);
            break;
        default:
            puts("\nOpção inválida! Verifique novamente as opções apresentadas.");
    }
}
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;
}