2023-01-20 12:08:05 +01:00
|
|
|
#ifndef VIETER_TREE_BALANCING
|
|
|
|
#define VIETER_TREE_BALANCING
|
|
|
|
|
2023-01-22 09:42:08 +01:00
|
|
|
#include "vieter_tree_node.h"
|
2023-01-20 12:08:05 +01:00
|
|
|
|
2023-01-29 17:32:27 +01:00
|
|
|
/*
|
|
|
|
* Ensure the tree remains a valid red-black tree after having inserting the
|
|
|
|
* node.
|
|
|
|
*/
|
2023-01-20 12:08:05 +01:00
|
|
|
void vieter_tree_node_balance_after_insert(vieter_tree_node *node);
|
|
|
|
|
2023-01-29 17:32:27 +01:00
|
|
|
/*
|
|
|
|
* Remove the given node, ensuring the tree remains a valid red-black tree.
|
|
|
|
*
|
2023-01-29 21:34:44 +01:00
|
|
|
* @param node node to remove. This should have at most a single child, namely
|
|
|
|
* the right one.
|
2023-01-29 17:32:27 +01:00
|
|
|
*/
|
|
|
|
void vieter_tree_node_remove_balanced(vieter_tree_node *node);
|
|
|
|
|
2023-01-20 12:08:05 +01:00
|
|
|
#endif
|