Computer science 在实现二叉搜索树(BST)时,如何应用分而治之的方法?
我不熟悉二进制搜索树,但有人告诉我,在实现它们时,应用分而治之的方法非常有用。例如,我如何应用这种方法来找到BST的高度?这个名字来自军事科学,意思是你把敌人分成几部分,然后分别征服。然而,在算法中,通常您并不是试图独立完成每一部分,而是希望生成一个单一的答案。所以模板有点不同。下面是分而治之的过程:Computer science 在实现二叉搜索树(BST)时,如何应用分而治之的方法?,computer-science,Computer Science,我不熟悉二进制搜索树,但有人告诉我,在实现它们时,应用分而治之的方法非常有用。例如,我如何应用这种方法来找到BST的高度?这个名字来自军事科学,意思是你把敌人分成几部分,然后分别征服。然而,在算法中,通常您并不是试图独立完成每一部分,而是希望生成一个单一的答案。所以模板有点不同。下面是分而治之的过程: 把问题分成几部分 通过递归地将整个过程应用于每一块来求解每一块 以某种方式将这些解决方案组合起来,得出答案 诀窍是想出一种巧妙的方法来划分问题,以便将解决方案结合起来。实际上,你不需要担心如何解决
int BST_height(root) {
if(root is a leaf node)
return 1;
else
return mystery_function(BST_height(root.left), BST_height(root.right));
}
对不起,你能更具体地回答你的问题吗?这是可以在维基百科上找到的。它涵盖了此数据结构的遍历。