(c ++) Используется двоичное дерево поиска для реализации очереди приоритетов [closed]

Мне просто нужна любая помощь, которую я могу получить с этой реализацией. Это мой первый пост здесь, мне очень жаль, если я делаю что-то не так в посте. Как говорится в заголовке, в основном мне просто нужна реализация очереди с приоритетами с использованием двоичного дерева поиска (не могу использовать кучу или какой-либо другой метод). Я сделал все, что мог, я просто хочу знать, правильно ли это или какие-либо рекомендации. Кроме того, я не могу использовать ни массив, ни векторы. Спасибо!

код:

#include <iostream>

using namespace std;

template<class T>
class BST {

    
    struct Node {
        T data;
        
        Node* leftChild;
        Node* rightChild;

        Node(T dataNew) { //Constructor to initialize data
            data = dataNew;
            leftChild = NULL;
            rightChild = NULL;
        }
    };  

private:   
    Node* root;   
    void Insert(T newData, Node*& theRoot) {
        
        if (theRoot == NULL)
        {
            theRoot = new Node(newData);
            return;
        }

        
        if (newData < theRoot->data)
            Insert(newData, theRoot->leftChild);
        else
            Insert(newData, theRoot->rightChild);;
    }
    
    void PrintTree(Node* theRoot) {
        if (theRoot != NULL)
        {
            PrintTree(theRoot->leftChild);
            cout << theRoot->data << " ";;
            PrintTree(theRoot->rightChild);
        }
    }

public:
    BST() {
        root = NULL;
    }

    void AddItem(T newData) {
        Insert(newData, root);
    }

    void PrintTree() {
        PrintTree(root);
    }

};  

int main() {

    BST<int>* myBT = new BST<int>();


    int data;

    cout << "Enter val in the BST";
    cout << "(-1 to end input):n";
    cin >> data;
    while (data != -1) {
        
        myBT->AddItem(data);
        cin >> data; 
    }

   
    cout << "nInorder traversal of the BST : ";
    myBT->PrintTree();
    cout << endl;
    return 0;
}

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *