bool Queue::add(Word in, int place) { QNode *node = new QNode(new Word(in)); if (size() < place || place < 0) { return false; } if (place == 0) { if (first != NULL){ node->set_next(first); first = node; } if (first == NULL) { first = node; last = first; } var_size++; return true; } QNode *current = first; for(; place > 1; place--) { current = current->next(); } node->set_next(current->next()); current->set_next(node); var_size++; return true; }
Queue::~Queue() { if (!first) return; QNode *ce = first; while (ce->has_next()) { QNode *tmp = ce; ce = ce->next(); delete tmp; } delete ce; }