Рассчитайте максимальный размер стека в дереве вызова функцииC++

Программы на C++. Форум разработчиков
Anonymous
Рассчитайте максимальный размер стека в дереве вызова функции

Сообщение Anonymous »

Вот пример дерева функций < /p>
A
| B
| | C
| | | D
| | | | E
| | | | | B
| | | | | C
| | | | | | K
| F
| | C
| | | E
| | | | D
| | | | | B
| | | | | | C
| | | | B
| | | | | C
| | | | | C
| G
| | B
| | C
< /code>
Каждая функция имеет свой собственный индивидуальный размер
Общий размер функции - это сумма детей этой функции
Здесь индивидуальный размер каждой функции - < /p>
A: 1
B: 2
C: 3
D: 1
E: 1
D: 1
F: 1
G: 3
< /code>
Как вы можете видеть функцию «b», а «c» - это рекурсивная функция, моя логика - это когда рекурсивная функция, добавляйте индивидуальный размер функции к общему размеру и не перейдите к этой функции детей (эта программа справки не повторять бесконечность).
, например, < /p>
Branch A-B-C-D-E-B (B is recursive)
< /code>
Таким образом, размер этой ветви составляет 1+2+3+1+1+2 = 10
Мой вопрос:
Какой метод для расчета ветви, имеющей максимальный размер стека
Могу ли я повторно использовать размер функции B, когда я рассчитывал ее в филиале A для расчета размера функции C? Если не зачем?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -call-tree

Вернуться в «C++»