Witam.
Mam taki problem. Chciałbym otrzymać takie drzewo jak na tym rysunku:
W jaki sposób je wypełnić? Jakoś nie mam do tego głowy, na razie napisałem coś takiego, ale funkcja fillTree() nie działa prawidłowo. Ktoś ma jakieś propozycje?
Kod:
#include <iostream>
#include <vector>
#define N 3
using namespace std;
class Tree {
struct Node {
int value;
vector<Node*>children;
Node(int _value) {
value = _value;
}
};
public:
Node *root;
Tree() {
root = new Node(0);
}
~Tree() {}
void fillTree(Node *node, int p, int k) {
int index = 0;
for (int i = p; i < k; i++) {
node->children.push_back(new Node(i + 1));
fillTree(node->children[index], i + 1, k);
index++;
}
}
};
int main() {
Tree *tree = new Tree();
tree->fillTree(tree->root, 0, N);
return 0;
}