Подсчет появления объекта в двоичном дереве - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь разработать рекурсивный алгоритм, который подсчитывает вхождение объекта в двоичное дерево.На самом деле, мне удалось записать один, но я не уверен, что он работает хорошо или предпочтительнее, если это не так, пожалуйста, помогите мне исправить это.

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 голосов
/ 24 мая 2018

Ваш алгоритм выглядит хорошо.Просто немного подумав, он может быть меньше с точки зрения 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)
...