С++
Очень нужна помощь!
Даю все баллы, что есть. Уже не знаю, к кому обратиться за помощью. Нужно реализовать шаблонный класс красно-чёрного дерева с операциями вставки узла, удаления и прямой обход дерева.
Вывод дерева должен выглядит примерно так, как указано на фото.
Пожалуйста, помогите!!!!!!!
![](https://st.uroker.com/files/a75/a756df1d7e4c6c9c1d032d2e68208c3a.jpg)
Ответы
Код на языке C++:
#include <iostream>
using namespace std;
template <typename T>
struct Node {
T data;
Node<T> *parent;
Node<T> *left;
Node<T> *right;
int color;
};
template <typename T>
class RedBlackTree {
private:
Node<T> *root;
Node<T> *TNULL;
// Остальные методы класса допишите тут, приведу 1 пример Node<T> *node:
void initializeNULLNode(Node<T> *node, Node<T> *parent) {
node->data = T();
node->parent = parent;
node->left = nullptr;
node->right = nullptr;
node->color = 0;
}
public:
RedBlackTree() {
TNULL = new Node<T>;
TNULL->color = 0;
TNULL->left = nullptr;
TNULL->right = nullptr;
root = TNULL;
}
// Остальные методы класса...
};
int main() {
RedBlackTree<int> bst;
bst.insert(50);
bst.insert(4);
bst.insert(13);
bst.insert(57);
bst.insert(53);
bst.insert(60);
bst.printTree();
cout << endl << "After adding" << endl;
bst.insert(125);
bst.printTree();
cout << endl << "After deleting" << endl;
bst.deleteNode(53);
bst.printTree();
return 0;
}