Smiljana Knezev wrote
> Dear all,
>
> I've written about implementing binary search trees:
> https://pharokeepers.github.io/pharo/2019/07/07/SmiljanaBinarySearchTreeinPharo.html
>
> Feedback and opinions is always welcome :)
>
> Best regards,
> Smiljana Knezev
Your implementation is unnecesarily complicated.
Remember, tree is a recursive data structure. You may have have reasons to
split tree and node into different classes, but at least delegate operations
to node.
For example, #depth and #size can be defined as following methods of Node
class:
depth
self isLeaf ifTrue: [ ^ 0 ].
^ leftChild depth max: rightChild depth
size
self isLeaf ifTrue: [ ^ 1 ].
^ leftChild size + rightChlid size
Most other operations can also be defined in similar fashion.
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html