====== Třetí domácí úkol ====== Instance třídy ''Node'' reprezentuje kořen binárního stromu obsahujícího celá čísla. Vaším úkolem je naprogramovat metody ''inorderIterator()'', ''preorderIterator()'', ''postorderIterator()'', které vrátí iterátory vracející prvky daného stromu v pořadí inorder, preorder resp. postorder. Jedna instance iterátoru smí v paměti alokovat maximálně konstantní prostor, tzn. paměťové nároky iterátoru nesmí růst s počtem uzlů v daném stromu. Specificky: nesmíte iterátory implementovat tak, že "přesypete" všechny prvky do již existující kolekce a vrátíte její iterátor. Samozřejmě také nesmíte modifikovat iterovaný strom. Odevzdávaný kód (tzn. třídu ''Node'' a třídy iterátorů) uložte do svého repozitáře do adresáře ''homeworks/Homework3.java''. /* Termín odevzdání je 14. 11. 2016 ve 24:00.*/ //Průchod stromem typu preorder, inorder a postorder si nastudujte na [[http://datastructuresnotes.blogspot.cz/2009/02/binary-tree-traversal-preorder-inorder.html]] , případně [[http://cs.wikipedia.org/wiki/Strom_(datov%C3%A1_struktura)#Metody_proch.C3.A1zen.C3.AD_stromu]]// interface CustomIterator { boolean hasNext(); int next(); } class Node { final int contents; final Node left, right; Node parent; Node(int contents, Node left, Node right) { this.contents = contents; this.left = left; if (left != null) left.parent = this; this.right = right; if (right != null) right.parent = this; } CustomIterator preorderIterator() { ... } CustomIterator inorderIterator() { ... } CustomIterator postorderIterator() { ... } } ~~DISCUSSION:off~~