AVL搜索树

时间:2015-04-12 17:35:36

标签: c++

#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;
}

我正在尝试在eclipse中的AVL树中创建我的节点类,我想知道为什么在控制台中返回错误没有从我的getter的'Node *'到'Node'的可行转换。解决和解决这个问题的最佳原因是什么。

1 个答案:

答案 0 :(得分:1)

你的getter应该返回指针(同样作为一个简单的get get通常应该是const

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

正如当前所写,声明函数按值返回Node,但是你的getter返回一个指针,这就是错误告诉你的。

相关问题