2014-09-23 64 views
2

我正在进行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); 
} 

,我总是得到一个错误说“节点”:使用类模板需要模板参数列表” 预先感谢您的帮助。

+2

做你的意思是:'模板 void PreOrder(节点 * root){'? – 2014-09-23 17:33:39

+0

顺便说一句,它应该是'const'。 – Jarod42 2014-09-23 17:46:40

回答

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() { 
} 
+0

非常感谢。这工作! – Nazariy1995 2014-09-23 17:43:57

+0

@ Nazariy1995:不客气。 – 2014-09-23 17:57:15

相关问题