关于顺序查找的函数设计问题

来源: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 为根节点的二叉树上执行相关操作。


如果你的意思是,我们可以将这三个函数都写成非递归的逻辑,是的,如果是那样的化,没有必要设计成调用另外一个私有函数的方式。这其实也是一个很好的练习。你提及的这三个操作的非递归版本的逻辑实现都不难,可以试试看。


继续加油!:)

0
1
Ryus
谢谢老师。
2023-01-06
共1条回复

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

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

11187 学习 · 1614 问题

查看课程