#include using namespace std; class Node { private: int v; Node* left_node; Node* right_node; Node* parent_node; public: Node(int v, Node* l, Node* r) { this->v = v; left_node = l; right_node = r; parent_node = NULL; } int value() { return this->v; }; Node* left() { return left_node; }; Node* right() { return right_node; }; Node* parent() { return parent_node; }; void setValue(int v) { this->v = v; }; void setLeft(Node* l) { left_node = l; }; void setRight(Node* r) { right_node = r; }; void setParent(Node* p) { parent_node = p; }; }; class Tree { private: Node* root; bool empty(Node* n) { if(!n) return true; return false; }; void preorder(Node* n); void inorder(Node* n); void postorder(Node* n); public: Tree(); //tworzy puste drzewo Tree(Node* r); bool empty(); //zwraca prawdę gdy drzewo jest puste void preorder(); void inorder(); void postorder(); }; /* przykładowe drzewo do testów (bez ustawienia ojca): Tree* t=new Tree(new Node(9, new Node(5, new Node(2, new Node(3, NULL, NULL), new Node(3, NULL, NULL)), new Node(7, NULL, new Node(8,NULL, NULL))), new Node(12, new Node(10, NULL, new Node(11, NULL, NULL)), NULL))); */ int main() { }