Rob*_*ood 6 java binary-tree static-methods binary-search-tree
我在我的Java实现二叉树的这些实例方法和搜索二叉树:getSize(),getHeight(),getDepth(),getPreOrder(),getInOrder(),getPostOrder()和getLevelOrder().这些方法在其他具有参数的递归方法中使用树的根Node.从OOP的角度来看,哪个更适合使用:
Node不属于实际类的object(),并且它们不使用任何类属性,UtilsTree()?从 OOP 的角度来看,我相信方法 2 是正确的选择。(在 OOP 中,静态通常是不受欢迎的。)
据我了解,该方法使用this作为根,然后遍历树的其余部分而不调用任何实例方法?考虑到其他节点属于同一类,这还不算太糟糕,这意味着代码已经在所有对象之间共享。(该方法可以访问其他实例的私有成员等等。)
话虽这么说,我认为getSize、getHeight、getDepth、getPreOrder、 、getInOrder和getPostOrder都getLevelOrder可以实现为适当的递归实例方法。(如我错了请纠正我。)
第四个选择也不算太糟糕,那就是使用访问者模式并拥有一个NodeVisitor界面。
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |