Итак, я хочу создать код, который создает двоичное дерево, в котором хранятся данные, например, целые числа типа 1,6,2,10,8, а в pop я получаю наибольшее число, и после этого оно удаляется издерево, и на толчок я могу вставить новый элемент.И это должно быть в шаблоне, чтобы я мог легко изменить тип данных, которые я хочу сохранить в дереве.Теперь у меня есть дерево, без шаблона оно работает нормально, я могу добавлять элементы и печатать их, но когда я пытаюсь поместить его в шаблон, я получаю следующую ошибку: использование шаблона класса требует шаблонасписок аргументов.В чем может быть проблема?Может быть, я делаю это совершенно неправильно.Любые предложения приветствуются.
Это был мой первый вопрос, который был исправлен avakar ty.(я опубликую код в конце моего вопроса)
Я только что прочитал через запрос проекта, и это похоже на то, я должен сделать это выше в первой части описанного вопроса, но это похоже надвоичное дерево должно представлять приоритетную очередь.И именно поэтому в запросе написано, что я должен использовать push, чтобы поместить новый элемент в дерево в порядке приоритета, и с помощью pop я получу элемент с наивысшим приоритетом, а затем этот элемент будет удален.Итак, как я могу использовать свое дерево в качестве приоритетной очереди, или он уже один (думаю, нет, но кто знал)?Я надеюсь, что смогу это объяснить.
А вот код, как обещано:
#include <iostream>
using namespace std;
template<class T>
class BinaryTree
{
struct Node
{
T data;
Node* lChildptr;
Node* rChildptr;
Node(T dataNew)
{
data = dataNew;
lChildptr = NULL;
rChildptr = 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->lChildptr);
else
Insert(newData, theRoot->rChildptr);;
}
void PrintTree(Node* theRoot)
{
if(theRoot != NULL)
{
PrintTree(theRoot->lChildptr);
cout<< theRoot->data<<" ";;
PrintTree(theRoot->rChildptr);
}
}
public:
BinaryTree()
{
root = NULL;
}
void AddItem(T newData)
{
Insert(newData, root);
}
void PrintTree()
{
PrintTree(root);
}
};
int main()
{
BinaryTree<int> *myBT = new BinaryTree<int>();
myBT->AddItem(1);
myBT->AddItem(7);
myBT->AddItem(1);
myBT->AddItem(10);
myBT->AddItem(4);
myBT->PrintTree();
}