"节点":使用类模板需要模板参数列表

'Node' : use of class template requires template argument list

本文关键字:列表 参数 节点      更新时间:2023-10-16

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

我总是收到一个错误,说"节点":类模板的使用需要模板参数列表提前感谢您的帮助。

您应该在PreOrder()函数签名中使用Node<T>语法(而不仅仅是Node):

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