예제 #1
0
 /**
  * @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());
 }
예제 #2
0
 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());
 }