#ifndef VIETER_TREE_NODE #define VIETER_TREE_NODE #include "vieter_tree.h" #include typedef struct vieter_tree_node { uint64_t key; void *data; struct vieter_tree_node *parent; struct vieter_tree_node *left; struct vieter_tree_node *right; } vieter_tree_node; vieter_tree_node *vieter_tree_node_init(); vieter_tree_error vieter_tree_node_insert(vieter_tree_node *root, uint64_t key, void *data); vieter_tree_error vieter_tree_node_search_node(vieter_tree_node **out, vieter_tree_node *root, uint64_t key); vieter_tree_error vieter_tree_node_search(void **out, vieter_tree_node *root, uint64_t key); vieter_tree_error vieter_tree_node_remove(void **out, vieter_tree_node *root, uint64_t key); vieter_tree_node *vieter_tree_node_successor(vieter_tree_node *node); void vieter_tree_node_replace(vieter_tree_node *to_replace, vieter_tree_node *replacement); #endif