Список аргументов для шаблона класса "Node" отсутствуетC/C++(441)

#include <iostream>
using namespace std;
template <typename T>
// we shouln't use the template here, it will cause a bug
// "argument list for class template "Node" is missingC/C++(441)"
// to fix the bug, check "https://stackoverflow.com/questions/15283195/argument-list-for-class-template-is-missing"
struct Node
{
    T datum;
    Node* left;
    Node* right;
};

// REQUIRES: node represents a valid tree
// MODIFIES: cout 
// EFFECTS: Prints each element in the given tree to stanhdard out
//          with each element followed by a space
void print(const Node *tree)  {
    if(tree) {            // non-empty tree
        cout << tree->datum << " ";
        print(tree->left);
        print(tree->right);
    }
}

Я новичок в C++, я пытался изучить основы печати двоичного дерева, я не знаю, как исправить красную строку под Node в void print(const Node *tree), я видел, как некоторые люди говорили, что преобразование шаблона T в int исправит ошибку, но я не знаю, почему это работает.

Привет! Разместите свой код в виде форматированного текста, а не изображения: meta.stackoverflow.com/questions/285551/…

nathan liang 10.04.2022 04:38

О, спасибо за инструкцию, буду следовать.

Yuan01216 10.04.2022 04:46
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
2
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Функция печати также должна быть функцией шаблона, компилятору С++ нужно, чтобы вы сообщили ему конкретный тип функции Node in print. Смотри ниже:

#include <iostream>
using namespace std;

template<typename T>
struct Node
{
    T datum;
    Node* left;
    Node* right;
};

template<typename T>
void print(const Node<T>* tree) {
    if (tree == nullptr) {
        return;
    }
    print(tree->left);
    cout << tree->datum << " ";
    print(tree->right);
}

Другие вопросы по теме