Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Inverter uma lista de modo que o último elemento se torne o primeiro, e assim por diante
- #include "dub.h"
- listadup inverter (listadup *inicio, listadup *fim)
- {
- if (*inicio == NULL)//Se lista estiver vazia nao inverte
- {
- printf ("Nao foi possivel inverter, ");//exibir mensagem de erro
- getch ();
- }
- else
- {
- listadup aux, r;
- r = NULL;//criando uma "lista" para realocar os nohs
- while((*inicio) != NULL)//enquanto nao passar por todos os nos
- {
- aux = *inicio; //auxiliar para segurar inicio
- *inicio = (*inicio)->prox; //movimentar o inicio da fila um noh a frente
- if(r == NULL)
- {
- *fim = aux;//Se r estiver vazio apontar o primeiro noh como fim
- }
- aux->prox = r; //apontar o auxiliar para a "lista2"
- r = aux; //igualar r aux para atualizar o ponteiro de inicio de r
- r->ant = *inicio; //atualizar o ponteiro ant
- }
- return r;
- }
- return NULL;
- }
- int main ()
- {
- listadup inicio, fim;
- inicio = fim = NULL;
- inserirFinal(&inicio, &fim, 6);
- inserirFinal(&inicio, &fim, 32);
- inserirFinal(&inicio, &fim, 655);
- inserirFinal(&inicio, &fim, 644);
- inserirFinal(&inicio, &fim, 677);
- inserirFinal(&inicio, &fim, 62);
- inserirFinal(&inicio, &fim, 61);
- inserirFinal(&inicio, &fim, 5);
- exibirLista(inicio,fim);
- inicio = inverter(&inicio, &fim);
- exibirLista(inicio,fim);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement