Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. _nodoFechasEspeciales *eliminarFechasEspeciales(char materia[], _nodoFechasEspeciales *apuntador)
  2. {
  3. //INTENTO DE BORRAR NODO 1
  4. if (!listaVaciaFechas(apuntador))
  5. {
  6. _nodoFechasEspeciales *borrarAuxiliar;
  7. _nodoFechasEspeciales *anterior = NULL;
  8.  
  9. borrarAuxiliar = apuntador;
  10.  
  11.  
  12. while (borrarAuxiliar != NULL && strcmp(borrarAuxiliar->nombre, materia) != 0)
  13. {
  14. anterior = borrarAuxiliar;
  15. borrarAuxiliar = borrarAuxiliar->siguiente;
  16. }
  17.  
  18. if (borrarAuxiliar == NULL)
  19. {
  20. printf("nNODO NO ENCONTRADO");
  21. }else if (anterior == NULL)
  22. {
  23. apuntador = apuntador->siguiente;
  24. free(borrarAuxiliar);
  25. } else
  26. {
  27. anterior->siguiente = borrarAuxiliar->siguiente;
  28. free(borrarAuxiliar);
  29. }
  30. }
  31.  
  32. return apuntador;
  33. }
  34.  
  35. while (borrarAuxiliar != NULL && strcmp(borrarAuxiliar->nombre, materia) != 0)
  36. {
  37. anterior = borrarAuxiliar; borrarAuxiliar = borrarAuxiliar->siguiente;
  38. }
  39. if (borrarAuxiliar == NULL)
  40. {
  41. printf("nNODO NO ENCONTRADO");
  42. }
  43. else if (anterior == NULL)
  44. {
  45. apuntador = apuntador->siguiente;
  46. free(borrarAuxiliar);
  47. }
  48. else
  49. {
  50. anterior->siguiente = borrarAuxiliar->siguiente;
  51. free(borrarAuxiliar);
  52. }
  53.  
  54. while (apuntador != NULL)
  55. {
  56. if( strcmp(apuntador->nombre, materia) == 0)
  57. {
  58. anterior->siguiente = apuntador->siguiente;
  59. _nodoFechasEspeciales* borrarAuxiliar = apuntador;
  60. apuntador = apuntador->siguiente;
  61. free(borrarAuxiliar);
  62. }
  63. else
  64. {
  65. anterior = apuntador;
  66. apuntador = apuntador->siguiente;
  67. }
  68. }
  69.  
  70. _nodoFechasEspeciales *eliminarFechasEspeciales(char materia[], _nodoFechasEspeciales *apuntador) {
  71. // ...
  72. return apuntador;
  73. }
  74.  
  75. _nodoFechasEspeciales *eliminarFechasEspeciales(char materia[], _nodoFechasEspeciales *apuntador) {
  76. _nodoFechasEspeciales* ptr = apuntador;
  77. _nodoFechasEspeciales* anterior = NULL;
  78. while (ptr != NULL)
  79. {
  80. if( strcmp(ptr->nombre, materia) == 0)
  81. {
  82. if( anterior )
  83. anterior->siguiente = ptr->siguiente;
  84. else
  85. apuntador = ptr->siguiente; // el primer elemento de la lista se elimina
  86. _nodoFechasEspeciales* borrarAuxiliar = ptr;
  87. ptr = ptr->siguiente;
  88. free(borrarAuxiliar);
  89. }
  90. else
  91. {
  92. anterior = ptr;
  93. ptr = ptr->siguiente;
  94. }
  95. }
  96. return apuntador;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement