请问在二分搜索树的构造过程中,我应该如何考虑它的私有成员。

来源:5-2 二分搜索树基础 (Binary Search Tree)

慕慕9414451

2017-12-09

老师您好,truct node的生命能不能放在BST类的外面呢?

对于一个类的声明,它的私有成员应该如何考虑呢?我自己有点糊涂。非常谢谢!

写回答

1回答

liuyubobobo

2017-12-10

简单来讲,就是你认为用户不需要知道的信息,都应该被设置为私有成员。在我们这一章设置的二分搜索树,最终是作为查找表使用,即对于用户来说,只需要能够往我们的数据结构中添加某个键值对应的数据,修改某个键值对应的数据,或者删除某个键值,就可以了。而对于Node信息,对用户来说是没必要的负担,尤其是左子树右子树指针这种细节,更是没必要,所以,在这个课程中,我将我们的二分搜索树的Node节点设置成是私有的。


可以参考C++中的map或者Java中的TreeMap,本质都是二分搜索树(虽然是平衡的),我们在具体使用的时候是完全不需要知道其中的Node节点是如何定义的:)


但让,如果你的应用场景特殊,认为调用的用户需要了解Node节点具体信息,设计成public是没有问题的。设计这个问题,是没有绝对的对错的:)

2
4
慕慕9414451
回复
liuyubobobo
谢谢老师耐心的解答!感激不尽!谢谢!!!
2017-12-10
共4条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程