我最近開始學習C++,並在理解模板機制時遇到問題。 該任務首先是構建用戶定義的二叉樹。我無法編譯我的代碼。使用代碼錯誤的模板
#include <iostream>
using namespace std;
template <typename DataType> struct TreeNode
{
TreeNode(DataType val, TreeNode *leftPtr = null, TreeNode *rightPtr = null)
{
left = leftPtr;
right = rightPtr;
data = val;
}
TreeNode *left, *right;
DataType data;
};
template <typename DataType> TreeNode *BuildTree()
{
TreeNode *root = new TreeNode(10, new TreeNode(20), new TreeNode(30));
TreeNode *curRoot = root;
curRoot = curRoot->left;
curRoot->left = new TreeNode(40);
curRoot->left->left = new TreeNode(70);
curRoot->right = new TreeNode(50);
curRoot = curRoot->right;
curRoot->left = new TreeNode(80, new TreeNode(100), new TreeNode(110));
curRoot = root->right;
curRoot->left = new TreeNode(60);
curRoot = curRoot->left;
curRoot->right = new TreeNode(90, new TreeNode(120), new TreeNode(130));
return root;
}
int main()
{
TreeNode *treeRoot = BuildTree<int>();
cin.get();
return 0;
}
功能BuildTree
建立樹的具體實例,具體數據類型。請幫我理解我的錯誤。 請不要留意使用後我沒有釋放記憶的事實。這只是一個草稿。
當問一個問題關於一個編譯問題,你應該總是發佈確切的錯誤信息。 –