Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. //Inverter uma lista de modo que o último elemento se torne o primeiro, e assim por diante
  2.  
  3. #include "dub.h"
  4.  
  5. listadup inverter (listadup *inicio, listadup *fim)
  6. {
  7. if (*inicio == NULL)//Se lista estiver vazia nao inverte
  8. {
  9. printf ("Nao foi possivel inverter, ");//exibir mensagem de erro
  10. getch ();
  11. }
  12. else
  13. {
  14. listadup aux, r;
  15. r = NULL;//criando uma "lista" para realocar os nohs
  16. while((*inicio) != NULL)//enquanto nao passar por todos os nos
  17. {
  18. aux = *inicio; //auxiliar para segurar inicio
  19. *inicio = (*inicio)->prox; //movimentar o inicio da fila um noh a frente
  20. if(r == NULL)
  21. {
  22. *fim = aux;//Se r estiver vazio apontar o primeiro noh como fim
  23. }
  24. aux->prox = r; //apontar o auxiliar para a "lista2"
  25. r = aux; //igualar r aux para atualizar o ponteiro de inicio de r
  26. r->ant = *inicio; //atualizar o ponteiro ant
  27. }
  28. return r;
  29. }
  30. return NULL;
  31. }
  32.  
  33. int main ()
  34. {
  35. listadup inicio, fim;
  36. inicio = fim = NULL;
  37. inserirFinal(&inicio, &fim, 6);
  38. inserirFinal(&inicio, &fim, 32);
  39. inserirFinal(&inicio, &fim, 655);
  40. inserirFinal(&inicio, &fim, 644);
  41. inserirFinal(&inicio, &fim, 677);
  42. inserirFinal(&inicio, &fim, 62);
  43. inserirFinal(&inicio, &fim, 61);
  44. inserirFinal(&inicio, &fim, 5);
  45. exibirLista(inicio,fim);
  46. inicio = inverter(&inicio, &fim);
  47. exibirLista(inicio,fim);
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement