Code Duplication    Length = 10-11 lines in 3 locations

DataStructures/Trees/BinarySearchTree.php 3 locations

@@ 155-164 (lines=10) @@
152
     * @param Callable|null $callback the callback function to apply to each
153
     *  node.
154
     */
155
    private function _preorder($node, Callable $callback = null) {
156
        if($node === null) {
157
            return;
158
        }
159
        if($callback !== null) {
160
            call_user_func($callback, $node);
161
        }
162
        $this->_preorder($node->left, $callback);
163
        $this->_preorder($node->right, $callback);
164
    }
165
166
    /**
167
     * Traverse in inorder. This is: first visit the left subtree,
@@ 185-195 (lines=11) @@
182
     * @param Callable|null $callback the callback function to apply to each
183
     *  node.
184
     */
185
    private function _inorder($node, Callable $callback = null) {
186
        if($node === null) {
187
            return;
188
        }
189
190
        $this->_inorder($node->left, $callback);
191
        if($callback !== null) {
192
            call_user_func($callback, $node);
193
        }
194
        $this->_inorder($node->right, $callback);
195
    }
196
197
    /**
198
     * Traverse in postorder. This is: first visit the left subtree,
@@ 216-225 (lines=10) @@
213
     * @param Callable|null $callback the callback function to apply to each
214
     *  node.
215
     */
216
    private function _postorder($node, Callable $callback = null) {
217
        if($node === null) {
218
            return;
219
        }
220
        $this->_postorder($node->left, $callback);
221
        $this->_postorder($node->right, $callback);
222
        if($callback !== null) {
223
            call_user_func($callback, $node);
224
        }
225
    }
226
}