我正在进行BST树遍历,当我使用模板时出现错误。 谢谢! 这是代码:
#include <iostream>
using namespace std;
template<typename T> struct Node{
T data;
Node*left;
Node*right;
};
template<class T>void PreOrder(Node* root){
if (root == NULL) return;
cout << root->data;
PreOrder(root -> right);
PreOrder(root -> left);
}
我总是得到一个错误说&#34; Node&#39; :使用类模板需要模板参数列表。 &#34; 提前感谢您的帮助。
答案 0 :(得分:3)
您应该在Node<T>
函数签名中使用 Node
语法(而不仅仅是PreOrder()
):
template<class T> void PreOrder(Node<T>* root) {
此代码与MSVC10编译良好:
#include <iostream>
using namespace std;
template<typename T> struct Node {
T data;
Node*left;
Node*right;
};
template<class T>void PreOrder(Node<T>* root) {
if (root == NULL) return;
cout << root->data;
PreOrder(root->right);
PreOrder(root->left);
}
int main() {
}