key_type pq_delete_min( binomial_queue *queue )
{
    key_type key = queue->minimum->key;
    binomial_node *old_min = queue->minimum;

    //printf("Deleting minimum: %u\n",old_min->item);

    REGISTRY_UNSET( queue->registry, old_min->rank );
    queue->roots[old_min->rank] = NULL;
    queue->minimum = NULL;

    break_tree( queue, old_min );
    cherry_pick_min( queue );

    pq_free_node( queue->map, 0, old_min );
    queue->size--;

    return key;
}
Пример #2
0
void
execute_command (command_t c, bool time_travel)
{
  /* FIXME: Replace this with your implementation.  You may need to
     add auxiliary functions and otherwise modify the source code.
     You can also use external functions defined in the GNU C Library.  */
  if (time_travel)
  {
    // Implement Me
    error (1, 0, "time travel execution not yet implemented");
    return;
  }
  else
  {
    break_tree(c, array);
    form_tree(c,array);
    recurse_command(c);
    free_command(c);
  }


  return;
}