Code Duplication    Length = 22-22 lines in 3 locations

DataStructures/Trees/BinarySearchTree.php 1 location

@@ 380-401 (lines=22) @@
377
     * @param int|string $key the key used to store.
378
     * @return DataStructures\Trees\Nodes\BSTNode|null the node or null.
379
     */
380
    public function search($key) {
381
        if($this->root === null) {
382
            return null;
383
        }
384
385
        if($this->root->key === $key) {
386
            return $this->root;
387
        } else {
388
            $node = $this->root;
389
            while($node !== null) {
390
                if($key < $node->key) {
391
                    $node = $node->left;
392
                } else if($key > $node->key) {
393
                    $node = $node->right;
394
                } else {
395
                    return $node;
396
                }
397
            }
398
        }
399
400
        return null;
401
    }
402
403
    /**
404
     * Returns true if is leaf the node.

DataStructures/Trees/BinaryTreeAbstract.php 2 locations

@@ 22-43 (lines=22) @@
19
    public function put($key, $data){}
20
    public function putOrUpdate($key, $data){}
21
22
    public function get($key){
23
        if($this->root === null) {
24
            return null;
25
        }
26
27
        if($this->root->key === $key) {
28
            return $this->root->data;
29
        } else {
30
            $node = $this->root;
31
            while($node !== null) {
32
                if($key < $node->left) {
33
                    $node = $node->left;
34
                } else if($key > $node->right) {
35
                    $node = $node->right;
36
                } else {
37
                    return $node->data;
38
                }
39
            }
40
        }
41
42
        return null;
43
    }
44
    public function getRoot(){
45
        return $this->root;
46
    }
@@ 80-101 (lines=22) @@
77
    public function delete($key){}
78
    public function count() {}
79
80
    public function search($key) {
81
        if($this->root === null) {
82
            return null;
83
        }
84
85
        if($this->root->key === $key) {
86
            return $this->root->data;
87
        } else {
88
            $node = $this->root;
89
            while($node !== null) {
90
                if($key < $node->left) {
91
                    $node = $node->left;
92
                } else if($key > $node->right) {
93
                    $node = $node->right;
94
                } else {
95
                    return $node->data;
96
                }
97
            }
98
        }
99
100
        return null;
101
    }
102
    
103
    public function isLeaf($node) { // BinaryTreeNode
104
        return ($node !== null && $node->left === null && $node->right === null);