作为个人项目的一部分,而不是家庭作业 - 只是为了我自己的兴趣和 C++ 入门,我正在尝试创建一个斐波那契值的二叉树;我知道我在这里犯了一些基本错误,但如果有人能帮助我,我将不胜感激,我的代码如下:
#include <iostream>
#include <typeinfo>
using namespace std;
class FibTree {
class Node {
public:
Node const* left;
Node const* right;
int value;
Node (int, Node*, Node*);
};
Node const* root;
public:
FibTree (int);
int getValue(){
return this->root->value;
};
private:
static Node* buildTree(int n ) {
if (n < 2) {
return new Node( n, NULL, NULL );
} else {
Node* left = buildTree( n - 1 );
Node* right = buildTree( n - 2 );
return new Node( left->value + right->value , left, right );
}
}
};
FibTree::FibTree(int n) {
this->root = buildTree(n);
};
FibTree::Node::Node(int value, Node* left, Node* right){
this->value = value;
this->left = left;
this->right = right;
};
int main () {
FibTree f(6);
cout << f.getValue();
return 0;
}
谁能让我知道我在这里做的根本错误,重要的是告诉我为什么我在分配中收到错误“无法将'FibTree'转换为'FibTree *”;以及我应该如何更好地接近?
提前致谢, 亚历克斯