Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Stack<T>::Delete() {
- Node *current, *prev, *next_;
- while(head && head->value % 2 == 0) {
- pop();
- }
- current = this->head;
- prev = this->head;
- next_ = this->head;
- size_t counter = 0;
- for (size_t i = 0; i <= this->size_-1; i++)
- {
- if ((current->value) % 2 == 0)
- {
- if (current->next == nullptr)
- {
- delete current;
- counter++;
- current = prev; next_ = nullptr;
- prev->next = nullptr;
- break;
- }
- next_ = current->next;
- delete current;
- counter++;
- prev->next = next_;
- current = prev->next;
- current = next_;
- }
- else {
- if (next_ == nullptr)
- break;
- if (next_->next == nullptr) {
- current = next_;
- prev = current;
- current->next = nullptr;
- break;
- }
- prev = current;
- current = current->next;
- next_ = current->next;
- }
- }
- this->size_ = size_ - counter;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement