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; }
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; }