Как использовать указатель узла в качестве возвращаемого типа в классе BST?

Я новичок в C ++, и меня смущает вопрос, почему я не могу использовать Node * в качестве возвращаемого типа для функций в моем классе BST (я должен использовать его в качестве возвращаемого типа).

Я думаю, потому что класс Node не объявлен, кроме как в ‘private’?

Хотя я не уверен, как это исправить, потому что я должен использовать Node * в остальной части моего класса BST.

Пожалуйста, дайте мне знать, что я мог сделать 🙂

(Также я искал другой ответ, но все, что я нашел, было связано с

Вот мой класс BST:

#ifndef BST_H
#define BST_H

#include <string>

using namespace std;

//DO I HAVE TO CAPITALIZE ALL 'CONSTANTS' PER THE PROG. ASSIGNMENT EXPECTATIONS?
//DO CLASS OBJECTS HAVE TO BE CAPITALIZED?

class BST
{
public:
BST();
~BST();

void deleteSubtree(Node* curr_root);

void insertContent(const string& word, const string& definition);
void deleteContent(string* word);
const string* getContent(const string& word);
Node* theRoot();
//WHY DOES COMPLILING SAY NODE HAS NOT BEEN DECLARED?
Node* treeMinimum(Node* ptr);
void nodeTransplant(Node* oldN, Node* newN);

private:
class Node
{
public:
Node(Node* cParent, string* word, string* definition)
{parent=cParent; left=NULL; right=NULL; m_word=word; m_definition=definition;}

Node* parent;  //IS IT OKAY THAT I ADDED IN A PARENT ATTRIBUTE TO NODES?
Node* left;
Node* right;
string* m_word;
string* m_definition;
};

Node* root;

};

Кроме того, я хотел бы знать, как сделать то же самое почти в другом классе (строки с Node * в них возвращают ошибки, говорящие о том, что Node не был объявлен)

#ifndef DICTIONARY_H
#define DICTIONARY_H

#include <string>
#include "BST.h"
using namespace std;

class Dictionary
{
public:
Dictionary();
~Dictionary();

void add(const string& word, const string& definition);
void remove(const string&);
const string* getDefinition(const string& word);
Node* getRoot();
void printEntry(Node* ptr);
void printInOrder(Node* ptr);
void printPreOrder(Node* ptr);
void printPostOrder(Node* ptr);

private:
BST dictionary;

};#endif

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]