fix(heap): finally fixed that pop bug

This commit is contained in:
Jef Roosens 2023-01-26 10:21:30 +01:00
parent 3ec2e76af9
commit 05b96d1fd6
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
2 changed files with 23 additions and 16 deletions

View file

@ -61,17 +61,18 @@ vieter_heap_node *vieter_heap_tree_merge_same_order(vieter_heap_node *root_a,
return root;
}
vieter_heap_node *vieter_heap_tree_merge(vieter_heap_node *root_a,
vieter_heap_node *root_b) {
vieter_heap_node *other_tree, *target_tree, *out;
vieter_heap_node *vieter_heap_tree_merge(vieter_heap_node *target_tree,
vieter_heap_node *other_tree) {
/* vieter_heap_node *other_tree, *target_tree, *out; */
vieter_heap_node *out;
if (root_a->order <= root_b->order) {
target_tree = root_a;
other_tree = root_b;
} else {
target_tree = root_b;
other_tree = root_a;
}
/* if (root_a->order <= root_b->order) { */
/* target_tree = root_a; */
/* other_tree = root_b; */
/* } else { */
/* target_tree = root_b; */
/* other_tree = root_a; */
/* } */
vieter_heap_node *next_other_tree, *next_target_tree;
vieter_heap_node *previous_target_tree = NULL;
@ -111,6 +112,10 @@ vieter_heap_node *vieter_heap_tree_merge(vieter_heap_node *root_a,
out = other_tree;
} else {
previous_target_tree->ptr.next_tree = other_tree;
// This single missing line right here broke this entire function for
// nearly a week.
previous_target_tree = other_tree;
}
other_tree->ptr.next_tree = target_tree;