Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
#1

Рекурсия - C++

02.09.2011, 18:49. Просмотров 1356. Ответов 24
Метки нет (Все метки)

на картинке файлик из википедии в которой говорится что рекусия имеет вид дерева и некоторые ветви могут вычислятся по многу раз. А как это реализованно в с++? то же с повторениями?
И как выделяется память под рекусивный вызов? Например есть функция с набором локальных переменных - они будут жить до тех пор пока не завершится функция, т.е. так долго пока не будет выход из рекурсии? и мы будем иметь большое множество участков в памяти с одинакововой структурой данных(но разными значениями)?
Миниатюры
Рекурсия  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2011, 18:49     Рекурсия
Посмотрите здесь:

Рекурсия - C++
Задан массив целых чисел: а0, а1 ..., аn-1. Известно, что один из элементов массива принимает нулевое значение. Найти номер данного...

рекурсия - C++
Всем доброго времени суток. Есть рекурсивная функция выводящая числа от 15 до 10 по убыванию, как сделать чтоб выводило эти же числа но...

Рекурсия - C++
Здравствуйте, писали на лабораторной программу с использованием рекурсии, о бъясните почему в ответе двойки выдает?? и что рекурсивная...

Рекурсия - C++
Есть функция, в нее передается массив из n элементов. Функция находит минимальный элемент и считает сколько раз он встречается в массиве,...

Рекурсия - C++
Есть такой код. В нем рисуется что то вроде линейки. Данный код предназначен для иллюстрации работы рекурсии. Может мне кто нибудь...

Рекурсия - C++
Сделайте одну програмку используя рекурсию. Очень нужно... Срочно. 1. Реализовать поиск НОД; 2. Возвести число в целую степень; ...

Рекурсия - C++
Привет, помогите пожалуйста надо вычислить рекурсивную функцию : (x+a(x+(a-1)(x+(a-2)(x+...2(x+1)^2)^2)^2)^2)^2. Помогите пожалуйста ,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.09.2011, 19:50     Рекурсия #21
Видимо, у меня немного другое издание, т.к. страницы не совпадают, но вот
пара цитат.
Обработка исключений представляет собой менее структурированный механизм управления, нежели локальные управляющие структуры типа if или for, и он показывает меньше эффективность в случае реально генерации исключения. Поэтому использовать такой механизм стоит лишь тогда, когда более традиционные структуры управления либо неэлегантны, либо недопустимы.
Рассмотренным применением исключений не стоит перебарщивать, ибо это ведет к запутанному коду. Всегда лучше, по возможности, придерживаться традиционный трактовки - "обработка исключений есть обработка ошибок".

Хотя он пишет, что использование исключений для выхода из рекурсии является элегантным. Может быть... Правда я еще не встречал рекурсивных функций, из которых сложно было выйти... Итого, как я понял, есть два варианта - хорошо продумать функцию с самого начала, или использовать исключение в качестве костыля...
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
02.09.2011, 19:54  [ТС]     Рекурсия #22
спасибо парни вам за ответы все и за хорошие ссылки. пойду....переваривать......
LosAngeles
Заблокирован
02.09.2011, 19:55     Рекурсия #23
Цитата Сообщение от diagon Посмотреть сообщение
Правда я еще не встречал рекурсивных функций, из которых сложно было выйти
там же и пример даётся - поиск по дереву
diagon
02.09.2011, 20:07
  #24

Не по теме:

Цитата Сообщение от LosAngeles Посмотреть сообщение
там же и пример даётся - поиск по дереву
Да, пример, конечно, шикарен - там можно изменить тип возвращаемого значения на string, вместо throw поставить return + поставить return'ы перед вызовами - вроде то же самое получиться. Только вместо двух функций получиться одна, причем более эффективная. Ладно, не убедили вы меня =) Заканчиваю оффтоп...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2011, 20:40     Рекурсия
Еще ссылки по теме:

рекурсия на с - C++
разработать рекурсивную функцию для вычитания двух подлинных двоичных чисел, заданных в виде символьных строк. разрядность цифр может быть...

Рекурсия - C++
Привет. Только что узнал,что такое рекурсия и понял как она работает,но написать участок кода с рекурсией мозгов не хватает. Нужно...

Рекурсия - C++
Помогите пожалуйста составить программу, с помощью рекурсии: Определить значение отношения максимального и минимального из...

Рекурсия - C++
Сегодня баловался с рекурсией. получилось типа цикла, только из функции #include <iostream> using namespace std; unsigned...

Рекурсия - C++
Вот какой самый простой пример рекурсии я обнаружил в интернете: #include <iostream> using namespace std; int factorial(int n) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
02.09.2011, 20:40     Рекурсия #25
В чем приемущество throw? К тому же ни к месту оно. Стек все равно будет разматываться. А за чем рекурсия? Всегда есть альтернативный способ с циклом и динамической памятью.
Yandex
Объявления
02.09.2011, 20:40     Рекурсия
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru