Jump to content
Fórum Script Brasil

kullas1

Membros
  • Posts

    1
  • Joined

  • Last visited

About kullas1

kullas1's Achievements

0

Reputation

  1. Tenho esse código em C que permite adicionar no inicio e no fim da lista e remover do inicio da lista, precisava criar um método para remover do fim da lista, porém não estou conseguindo, alguém pode me ajudar? typedef struct abstracao { int valor; struct abstracao *prox; }lista; lista *inicio; lista *aux; lista *fim; int op, x, contador; void InserirInicio(int a) { printf(" ---- -INSERIR- ----"); struct abstracao *novo = malloc(sizeof(struct abstracao)); novo->valor = a; if (inicio ==NULL) { inicio = novo; fim = novo; fim->prox = NULL; } else { novo->prox = inicio; inicio = novo; } contador++; } void Apresentar() { if(inicio == NULL) printf("Lista esta VAZIA.\n"); else { aux = inicio; printf("\n"); while(aux!=NULL) { printf(" %d - ", aux->valor); aux = aux->prox; }printf("\n"); printf("Quantidade de elemento da lista: %d\n", contador); } } void RemoverInicio() { aux = inicio; inicio = aux->prox; free(aux); aux = inicio; } void InserirFinal(int a) { printf(" ---- - INSERIR- ----\n"); struct abstracao *novo = malloc(sizeof(struct abstracao)); novo->valor = a; if(inicio==NULL) { inicio = novo; fim = novo; fim->prox = NULL; } else { fim->prox = novo; fim=novo; fim->prox = NULL; } } void main() { inicio = NULL; aux = NULL; do { printf(" --- Digite uma opção para lista --- \n"); printf("1 - Inserir no INICIO\n"); printf("2 - Apresentar\n"); printf("3 - Remover\n"); printf("4 - Inserir FINAL\n"); printf("5 - Remover FINAL\n"); scanf("%d", &op); switch(op) { case 1: { printf("Digite um valor para inserir na lista: \n"); scanf("%d", &x); InserirInicio(x); }break; case 2: { Apresentar(); }break; case 3: { RemoverInicio(); }break; case 4: { printf("Digite um valor para inserir na lista: \n"); scanf("%d", &x); InserirFinal(x); }break; case 5: { RemoverFinal(); } } }while (op<6); }
×
×
  • Create New...