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

时间:2018-05-23 22:06:11

标签: algorithm data-structures 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

1 个答案:

答案 0 :(得分:1)

你的算法看起来很好。只是一些快速思考,它可以在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)