Code Duplication    Length = 16-17 lines in 3 locations

Mbh/Tree/Visitor/InOrder.php 1 location

@@ 6-22 (lines=17) @@
3
use Mbh\Tree\Interfaces\Node as NodeInterface;
4
use Mbh\Tree\Visitor;
5
6
class InOrder extends Visitor
7
{
8
    public function visit(NodeInterface $node)
9
    {
10
        if ($node->isLeaf()) {
11
            return [$node];
12
        }
13
14
        $yield = [];
15
16
        foreach ($node->getChildren() as $child) {
17
            $yield = array_merge($yield, $child->accept($this));
18
        }
19
20
        return $yield;
21
    }
22
}
23

Mbh/Tree/Visitor/PostOrder.php 1 location

@@ 6-22 (lines=17) @@
3
use Mbh\Tree\Interfaces\Node as NodeInterface;
4
use Mbh\Tree\Visitor;
5
6
class PostOrder extends Visitor
7
{
8
    public function visit(NodeInterface $node)
9
    {
10
        $nodes = [];
11
        foreach ($node->getChildren() as $child) {
12
            $nodes = array_merge(
13
                $nodes,
14
                $child->accept($this)
15
            );
16
        }
17
18
        $nodes[] = $node;
19
20
        return $nodes;
21
    }
22
}
23

Mbh/Tree/Visitor/PreOrder.php 1 location

@@ 6-21 (lines=16) @@
3
use Mbh\Tree\Interfaces\Node as NodeInterface;
4
use Mbh\Tree\Visitor;
5
6
class PreOrder extends Visitor
7
{
8
    public function visit(NodeInterface $node)
9
    {
10
        $nodes = [$node];
11
12
        foreach ($node->getChildren() as $child) {
13
            $nodes = array_merge(
14
                $nodes,
15
                $child->accept($this)
16
            );
17
        }
18
19
        return $nodes;
20
    }
21
}
22