Guest User

Untitled

a guest
Dec 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 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. TLSE* inserel(TLSE *l, int elem);
  10. TLSE* inseref(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=inseref(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=inseref(Copia,i);
  53. Copia=inseref(Copia,elem);
  54. for(i=1;i<elem+1;i++) Copia=inseref(Copia,i);
  55. }
  56. else Copia=inseref(Copia,q->info);
  57. q=q->prox;
  58. }
  59. return Copia;
  60. }
  61. TLSE* inseref(TLSE *l, int elem){
  62. if(!l) return inserel(l,elem);
  63. TLSE *novo = (TLSE *) malloc(sizeof(TLSE));
  64. TLSE*p=l;
  65. while(p->prox)p=p->prox;
  66. p->prox=novo;
  67. novo->prox = NULL;
  68. novo->info = elem;
  69. return l;
  70. }
  71. void imprimel(TLSE *l){
  72. TLSE *p = l;
  73. while(p){
  74. printf("%d ", p->info);
  75. p = p->prox;
  76. }
  77. return;
  78. }
  79. void liberal(TLSE *l){
  80. TLSE *p = l, *q;
  81. while(p){
  82. q = p;
  83. p = p->prox;
  84. free(q);
  85. }
  86. }
  87. TLSE* inserel(TLSE *l, int elem){
  88. TLSE *novo = (TLSE *) malloc(sizeof(TLSE));
  89. novo->prox = l;
  90. novo->info = elem;
  91. return novo;
  92. }
Add Comment
Please, Sign In to add comment