2015-04-12 5 views
1
#include <cstdlib> 
#include <iostream> 
#include <cmath> 
#include <fstream> 
#include <string> 
using namespace std; 

class Node 
{ 
public: 
    string word; 
    Node *left; 
    Node *right; 
    Node *parent; 
    int number; 
    int balance; 
    int height; 
    Node(string x); 
    Node(string x, Node *nleft, Node *nright); 
    Node(string, Node *nparent, Node *nleft, Node *nright); 
    void setWord(string x); 
    string getWord(); 
    void setParent(Node *nparent); 
    Node getParent(); 
    void setLeft(Node *nleft); 
    Node getLeft(); 
    void setRight(Node *nright); 
    Node getRight(); 
    void setNumber(int num); 
    int getNumber(); 
}; 
Node::Node(string x){ 
    word = x; 
    parent = NULL; 
    left = NULL; 
    right = NULL; 
    number = 1; 
    balance = 0; 
    height = 0; 

} 
Node::Node(string x, Node *nleft, Node *nright){ 
    word = x; 
    parent = NULL; 
    left = nleft; 
    right = nright; 
    number = 1; 
    balance = 0; 
    height = 0; 

} 
Node::Node(string x, Node *nparent, Node *nleft, Node *nright){ 
    word = x; 
    parent = nparent; 
    left = nleft; 
    right = nright; 
    number = 1; 
    balance = 0; 
    height = 0; 
} 
void Node::setWord(string x){ 
    word = x; 
} 
string Node::getWord(){ 
    return word; 
} 
void Node::setParent(Node *nparent){ 
    parent = nparent; 
} 
Node Node::getParent(){ 
    return parent; 
} 
void Node::setLeft(Node *nleft){ 
    left = nleft; 
} 
Node::Node getLeft(){ 
    return left; 
} 
void Node::setRight(Node *nright){ 
    right = nright; 
} 
Node::Node getRight(){ 
    return right; 
} 
void Node::setNumber(int num){ 
    number = num; 
} 
int Node::getNumber(){ 
    return number; 
} 

Я пытаюсь создать свой класс узла в моем AVL дерева в затмении, и мне было интересно, почему ошибка не жизнеспособно преобразование из «Node *» в «Node» для моих добытчиков не возвращается в консоль. Для чего лучше всего решить эту проблему.AVL дерева поиска

ответ

1

Ваших добытчики должны возвращать указатели (также как наконечник тривиальных добытчики обычно должны быть const)

Node* Node::getParent() const 
{ 
    return parent; 
} 

В настоящее время написано, функция объявляется возвращать Node по значению, но ваш геттер возвращает указатель , о чем вам говорит ошибка.

Смежные вопросы