#include #include #include class node { public: node(const std::string &name = ""); virtual ~node(); std::string get_name() const; void set_name(const std::string new_name); unsigned int get_nr_children() const; node *get_child(std::size_t i) const; void add_child(node *child); private: std::string name; std::vector children; static unsigned int node_id; }; node *create_complete_tree(std::size_t nr_child_nodes, unsigned int tree_depth);