Esempio n. 1
0
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;
}
Esempio n. 2
0
Queue::~Queue()
{
  if (!first) return;

  QNode *ce = first;
  while (ce->has_next()) {
    QNode *tmp = ce;
    ce = ce->next();
    delete tmp;
  }
  delete ce;
}