宿題ではなく、個人的なプロジェクトの一環として、私自身の興味と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*」に変換できないというエラーが発生する理由を教えてください; どうすればもっとうまくアプローチできますか?
よろしくお願いします、アレックス