Guest User

Untitled

a guest
Dec 16th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lse{
  5. int info;
  6. struct lse *prox;
  7. } TLSE;
  8.  
  9. void inverte_v (TLSE* l);
  10. TLSE* inserel(TLSE *l, int elem);
  11. void imprimel(TLSE *l);
  12. void liberal(TLSE *l);
  13.  
  14. TLSE* misc (TLSE* l, int elem);
  15.  
  16. int main(void)
  17. {
  18. int n;
  19. TLSE*l=NULL;
  20. int op=1;
  21. while(op==1)
  22. {
  23. printf("Digite um numero para a lista: ");
  24. scanf("%d",&n);
  25. l=inserel(l,n);
  26. printf("Deseja operar novamente? 1 ou 0: ");
  27. scanf("%d",&op);
  28. }
  29. int i;
  30. printf("Lista original:\n");
  31. imprimel(l);
  32. printf("\n");
  33. printf("Digite um valor para a miscelania: ");
  34. scanf("%d",&i);
  35. printf("Lista modificada:\n");
  36. TLSE*Copia=misc(l,i);
  37. imprimel(Copia);
  38. liberal(l);
  39. liberal(Copia);
  40. return 0;
  41. }
  42.  
  43. TLSE* misc (TLSE* l, int elem)
  44. {
  45. TLSE*Copia=NULL;
  46. TLSE*q=l;
  47. int i;
  48. while(q)
  49. {
  50. if(q->info==elem)
  51. {
  52. for(i=1;i<elem+1;i++) Copia=inserel(Copia,i);
  53. Copia=inserel(Copia,elem);
  54. for(i=1;i<elem+1;i++) Copia=inserel(Copia,i);
  55. }
  56. else Copia=inserel(Copia,q->info);
  57. q=q->prox;
  58. }
  59. inverte_v(Copia);
  60. return Copia;
  61. }
  62. TLSE* inserel(TLSE *l, int elem){
  63. TLSE *novo = (TLSE *) malloc(sizeof(TLSE));
  64. novo->prox = l;
  65. novo->info = elem;
  66. return novo;
  67. }
  68. void imprimel(TLSE *l){
  69. TLSE *p = l;
  70. while(p){
  71. printf("%d ", p->info);
  72. p = p->prox;
  73. }
  74. return;
  75. }
  76. void liberal(TLSE *l){
  77. TLSE *p = l, *q;
  78. while(p){
  79. q = p;
  80. p = p->prox;
  81. free(q);
  82. }
  83. }
  84. void inverte_v (TLSE* l){
  85. int temp,n=0;
  86. for(TLSE*h=l;h;h=h->prox)n++;
  87. for(int i=n-1;i>0;i--){
  88. TLSE*p=l;
  89. for(int j=0;j<i;j++){
  90. temp=p->info;
  91. p->info=p->prox->info;
  92. p->prox->info=temp;
  93. p=p->prox;
  94. }
  95. }
  96. return;
  97. }
Add Comment
Please, Sign In to add comment