@@ 454-463 (lines=10) @@ | ||
451 | * @param Callable|null $callback the callback function to apply to each |
|
452 | * node. |
|
453 | */ |
|
454 | private function _preorder($node, Callable $callback = null) { |
|
455 | if($node === null) { |
|
456 | return; |
|
457 | } |
|
458 | if($callback !== null) { |
|
459 | call_user_func($callback, $node); |
|
460 | } |
|
461 | $this->_preorder($node->left, $callback); |
|
462 | $this->_preorder($node->right, $callback); |
|
463 | } |
|
464 | ||
465 | /** |
|
466 | * Traverse in inorder. This is: first visit the left subtree, |
|
@@ 484-494 (lines=11) @@ | ||
481 | * @param Callable|null $callback the callback function to apply to each |
|
482 | * node. |
|
483 | */ |
|
484 | private function _inorder($node, Callable $callback = null) { |
|
485 | if($node === null) { |
|
486 | return; |
|
487 | } |
|
488 | ||
489 | $this->_inorder($node->left, $callback); |
|
490 | if($callback !== null) { |
|
491 | call_user_func($callback, $node); |
|
492 | } |
|
493 | $this->_inorder($node->right, $callback); |
|
494 | } |
|
495 | ||
496 | /** |
|
497 | * Traverse in postorder. This is: first visit the left subtree, |
|
@@ 515-524 (lines=10) @@ | ||
512 | * @param Callable|null $callback the callback function to apply to each |
|
513 | * node. |
|
514 | */ |
|
515 | private function _postorder($node, Callable $callback = null) { |
|
516 | if($node === null) { |
|
517 | return; |
|
518 | } |
|
519 | $this->_postorder($node->left, $callback); |
|
520 | $this->_postorder($node->right, $callback); |
|
521 | if($callback !== null) { |
|
522 | call_user_func($callback, $node); |
|
523 | } |
|
524 | } |
|
525 | } |