我正在尝试开发一种递归算法,该算法计算二叉树中对象的出现次数。实际上,我可以设法写下一个,但我不确定它是否运作良好,或者如果不合适则更好,请帮我解决。
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
答案 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)