/** * @link http://php.net/manual/en/iteratoraggregate.getiterator.php * @return SortedMapIterator */ function getIterator() { return new SortedMapIterator(new InOrderIterator($this->avl->toBinaryTree(), $this->avl->count()), $this->avl->count()); }
function testSetCompare() { $tree = new SplayTree(); $tree->setCompare(function ($a, $b) { if ($a < $b) { return 1; } elseif ($b < $a) { return -1; } else { return 0; } }); for ($i = 0; $i < 3; $i++) { $tree->add($i); } $bt = $tree->toBinaryTree(); $this->assertEquals(2, $bt->value()); $this->assertEquals(1, $bt->right()->value()); $this->assertEquals(0, $bt->right()->right()->value()); }