#include "vieter_heap_tree.h" vieter_heap_node *vieter_heap_node_init() { return calloc(1, sizeof(vieter_heap_node)); } vieter_heap_node *vieter_heap_node_merge_same_order(vieter_heap_node *root_a, vieter_heap_node *root_b) { vieter_heap_node *new_root, *new_child; if (root_a->key <= root_b->key) { new_root = root_a; new_child = root_b; } else { new_root = root_b; new_child = root_a; } new_root->next_largest_order = new_root->largest_order; new_root->largest_order = new_child; return new_root; } vieter_heap_tree *vieter_heap_tree_init(vieter_heap_node *root, vieter_heap_tree *next, uint64_t order) { vieter_heap_tree *tree = malloc(sizeof(vieter_heap_tree)); tree->root = root; tree->next = next; tree->order = order; return tree; } vieter_heap_tree *vieter_heap_tree_merge(vieter_heap_tree *tree_a, vieter_heap_tree *tree_b) {}