Esempio n. 1
0
  /** 
   * Clears the queues
   */
  void clear() {
    // Clear the search queue
    while (!q.empty())
      q.pop();

    // Clear edge_map
    edges.clear();
  }
Esempio n. 2
0
  /**
   * Clear the queue and re-insert all known links.
   */
  void RestartQueue() {
    // Clear the search queue
    while (!q.empty())
      q.pop();

    for (const auto &i : edges)
      q.push(Value(i.second.value, i));
  }
Esempio n. 3
0
  /**
   * Return top element of queue for processing
   *
   * @return Node for processing
   */
  const Node &pop() {
    cur = q.top().iterator;

    do
      q.pop();
    while (!q.empty() && q.top().iterator->second.value < q.top().edge_value);

    return cur->first;
  }
Esempio n. 4
0
  /**
   * Return top element of queue for processing
   *
   * @return Node for processing
   */
  Node Pop() {
    edge_const_iterator cur(q.top().iterator);
    current_value = cur->second.value;

    do {
      q.pop();
    } while (!q.empty() && q.top().iterator->second.value < q.top().edge_value);

    return cur->first;
  }
Esempio n. 5
0
  /**
   * Return top element of queue for processing
   *
   * @return Node for processing
   */
  const Node &Pop() {
    cur = q.top().iterator;

    do { // remove this item
      q.pop();
    } while (!q.empty() && (q.top().priority > q.top().iterator->second));
    // and all lower rank than this

    return cur->first;
  }
Esempio n. 6
0
  /** Clears the queues */
  void Clear() {
    // Clear the search queue
    while (!q.empty())
      q.pop();

    // Clear the node_parent_map
    node_parents.clear();
    // Clear the node_value_map
    node_values.clear();
  }
Esempio n. 7
0
  /** 
   * Clears the queues
   */
  void Clear() {
    // Clear the search queue
    while (!q.empty())
      q.pop();

    // Clear EdgeMap
    edges.clear();

    current_value = 0;
  }
Esempio n. 8
0
 /**
  * Test whether queue is empty
  *
  * @return True if no more nodes to search
  */
 gcc_pure
 bool empty() const {
   return q.empty();
 }