• Предмет: Информатика
  • Автор: imanowamar
  • Вопрос задан 4 месяца назад

С++
Очень нужна помощь!
Даю все баллы, что есть. Уже не знаю, к кому обратиться за помощью. Нужно реализовать шаблонный класс красно-чёрного дерева с операциями вставки узла, удаления и прямой обход дерева.
Вывод дерева должен выглядит примерно так, как указано на фото.
Пожалуйста, помогите!!!!!!! ​

Приложения:

TemaZpro: Куда тебе отправить? Я сделал с template, а мои ответы с ссылкой на pastebin удаляют, а код не вмещается... В общем в ответ напишу кратко, как выглядит шаблонный класс, а ссылку в комментариях даю: https://pastebin.com/jw3fHgjG

Ответы

Ответ дал: TemaZpro
1

Код на языке 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;

}


imanowamar: Огромное спасибо за потраченное на мою задачу время, теперь понял как это делается
Вас заинтересует