Advertisement
illfate

Untitled

Apr 3rd, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. void Stack<T>::Delete() {
  2. Node *current, *prev, *next_;
  3.  
  4. while(head && head->value % 2 == 0) {
  5. pop();
  6. }
  7. current = this->head;
  8. prev = this->head;
  9. next_ = this->head;
  10. size_t counter = 0;
  11. for (size_t i = 0; i <= this->size_-1; i++)
  12. {
  13. if ((current->value) % 2 == 0)
  14. {
  15. if (current->next == nullptr)
  16. {
  17.  
  18. delete current;
  19. counter++;
  20. current = prev; next_ = nullptr;
  21. prev->next = nullptr;
  22. break;
  23. }
  24.  
  25.  
  26. next_ = current->next;
  27. delete current;
  28. counter++;
  29. prev->next = next_;
  30. current = prev->next;
  31. current = next_;
  32.  
  33.  
  34.  
  35.  
  36. }
  37. else {
  38.  
  39. if (next_ == nullptr)
  40. break;
  41. if (next_->next == nullptr) {
  42. current = next_;
  43. prev = current;
  44. current->next = nullptr;
  45. break;
  46. }
  47. prev = current;
  48. current = current->next;
  49. next_ = current->next;
  50.  
  51.  
  52. }
  53. }
  54.  
  55. this->size_ = size_ - counter;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement