Рекурсии хвостовая и традиционная?

207
23 декабря 2017, 06:10

Никак не могу разобраться, чем друг от друга отличаются. Правильно ли я понимаю, принцип работы традиционной рекурсии - это только передача значения, поэтому традиционная не ограничивается размером стека и вполне может себе позволить зациклиться, в то время как хвостовая хранит в стеке адреса перехода, а также промежуточное значение, что может привести к переполнению стека, т.о. хвостовую можно рассмотреть как обычный цикл? Если так, то в чем преимущества традиционной или хвостовой?

Answer 1

Я бы сказал, что хвостовая (оконечная) рекурсия - это просто частный случай рекурсии вообще, и уж говорить о том, что обычная рекурсия может зациклиться, а хвостовая - нет, или что стек переполняется в одном случае, и не переполняется в другом - ерунда.

Просто хвостовая рекурсия - когда единственный рекурсивный вызов находится в самом конце, перед выходом их функции, и такая рекурсия легко преобразуется в итерацию. Часто просто самим компилятором...

READ ALSO
Работа с символьным массивом

Работа с символьным массивом

Я не прошу мне расписывать весь код задачи, которая дана нижеМеня интересует алгоритм выполнения программы, что такое вхождения и к каким...

242
Удаление\добавление пробелов

Удаление\добавление пробелов

Вопрос такой : можно ли сделать ручной ввод для подобных заданий через cin ? Через обычный cin не получается ни добавить, ни удалить пробелы...

286
Проблема с переходом в циклах

Проблема с переходом в циклах

Всем привет! Решил написать программу на с++, уже заканчивал делать и понеслаааась:

222