计算对象在二叉树中的出现次数

Counting the occurence of an object in a Binary Tree

我正在尝试开发一种递归算法来计算对象在二叉树中的出现次数。其实,我可以写一个,但我不确定它是否有效,或者如果不是更好,请帮助我修复它。

Algorithm count(Node, desiredObject)

counter = 0
 if(Node is empty)
    return counter
 else 
    if(Node's data is equal to the desiredObject's data)
     counter := counter + 1
 leftCounter = count(Node's left child, desiredObject)
 rightCounter = count(Node's right child, desiredObject)
 return counter + leftCounter + rightCounter

你的算法看起来不错。只是一些快速的想法,就 LOC 而言它可以更小,你可以排除所有计数器变量。

Algorithm count(Node, desiredObject)

 if(Node is empty)
    return 0

 return (Node's data == desiredObject's data) + 
            count(Node's left child, desiredObject) + 
            count(Node's right child, desiredObject)