4
所以我想創建一個代碼,創建一個二叉樹,保存數據,例如整數如1,6,2,10,8和流行音樂我得到最大的數字,以及後它從樹中被刪除,並在推我可以插入一個新的元素。這應該是在模板中,所以我可以很容易地改變我想要保存在樹中的數據類型。現在我到目前爲止,沒有模板它是工作好思想,我可以添加項目,我可以打印它們,但是當我嘗試將它放在模板中時,我得到以下錯誤:使用類模板需要模板參數列表。可能是什麼問題呢?也許我這樣做完全錯了。歡迎任何建議。模板中的二叉樹
我得到了以下代碼到目前爲止:
#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();
myBT->AddItem(1);
myBT->AddItem(7);
myBT->AddItem(1);
myBT->AddItem(10);
myBT->AddItem(4);
myBT->PrintTree();
}
這是一個類和一個模板...這是一個類模板! – Marlon
@Marlon,類模板?也許。類?也許不是。我需要停止看Futurama ... – avakar
不確定,你們在說什麼,但現在它真的有效,所以非常感謝你。 –