关于顺序查找的函数设计问题
来源:5-4 二分搜索树的查找
Ryus
2023-01-05
老师你好。
在二分搜索树来实现 insert,contain和search函数中,我们在函数内部又使用了一个私有的函数来实现。
但我不知道为什么在顺序查找中,上述3个函数的实现没有通过私有的函数来实现。
和顺序查找一样 在二分搜索树的公共的insert,contain和search函数中我们也可以直接使用root这个指针节点来实现,并且用户只传入key和value 或者 key就行了。
希望老师解答两者这样设计的区别是什么
写回答
1回答
-
liuyubobobo
2023-01-05
虽然这门课程中并没有介绍顺序查找,我不确定你说的顺序查找的代码是怎样的。但是,bst 类中的这三个函数内部要调用另外一个私有成员函数的原因是:这三个函数都调用了一个递归函数,而这个递归函数的函数签名是和这三个函数的公有版本(public)是不同的。最大的区别是,在函数签名中,包含 Node *node 的参数,表示在以 node 为根节点的二叉树上执行相关操作。
如果你的意思是,我们可以将这三个函数都写成非递归的逻辑,是的,如果是那样的化,没有必要设计成调用另外一个私有函数的方式。这其实也是一个很好的练习。你提及的这三个操作的非递归版本的逻辑实现都不难,可以试试看。
继续加油!:)
012023-01-06
相似问题