Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct cel {
  5. int conteudo;
  6. struct cel *prox;
  7. };
  8.  
  9. typedef struct cel celula;
  10.  
  11. void insere(int x, celula * p);
  12. void imprime(celula * ini);
  13. celula *busca(int x, celula * ini);
  14. celula *cria(void);
  15. void remova(int y, celula * ini);
  16. void remova_end(celula * p);
  17.  
  18. int main()
  19. {
  20. celula *ini, *pos;
  21. ini = cria();
  22. insere(10, ini);
  23. insere(100, ini);
  24. insere(1000, ini);
  25. imprime(ini);
  26. pos = busca(100, ini);
  27. insere(99, pos);
  28. imprime(ini);
  29. remova(99, ini);
  30. imprime(ini);
  31. pos = busca(100, ini);
  32. remova_end(pos);
  33. imprime(ini);
  34. return 0;
  35. }
  36.  
  37. celula *cria(void)
  38. {
  39. celula *start;
  40. start = malloc(sizeof(celula));
  41. start->prox = NULL;
  42. return start;
  43. }
  44.  
  45. void insere(int x, celula * p)
  46. {
  47. celula *nova;
  48. nova = malloc(sizeof(celula));
  49. nova->conteudo = x;
  50. nova->prox = p->prox;
  51. p->prox = nova;
  52. }
  53.  
  54. void imprime(celula * ini)
  55. {
  56. celula *p;
  57. for (p = ini->prox; p != NULL; p = p->prox)
  58. printf("%d\n", p->conteudo);
  59. }
  60.  
  61. celula *busca(int x, celula * ini)
  62. {
  63. celula *p;
  64. p = ini->prox;
  65. while (p != NULL && p->conteudo != x)
  66. p = p->prox;
  67. return p;
  68. }
  69.  
  70. void remova(int y, celula * ini)
  71. {
  72. celula *p, *q;
  73. p = ini;
  74. q = ini->prox;
  75. while ((q != NULL) && (q->conteudo != y)) {
  76. p = q;
  77. q = q->prox;
  78. }
  79. if (q != NULL) {
  80. p->prox = q->prox;
  81. free(q);
  82. }
  83. }
  84.  
  85. void remova_end(celula * p)
  86. {
  87. celula *morta;
  88. morta = p->prox;
  89. p->prox = morta->prox;
  90. free(morta);
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement