| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как в алгоритме избежать рекрусии? |
| Автор: Sergio 8.8.2008, 19:51 | ||
Здраствуйте. Есть алгоритм:
Как видите используется рекрусия. Мне нужно избежать этого. Помогите плз с задачей Заранее спасибо. |
| Автор: bsa 8.8.2008, 20:01 |
| Sergio, сделай очередь. Функция в цикле обрабатывает каждую запись очереди, добавляя в конец другие записи, если необходимо. |
| Автор: andrew_121 8.8.2008, 20:19 |
| Сам удалил. |
| Автор: source777 8.8.2008, 20:47 | ||
Либо я не понял хитровыдуманности вашего алгоритма(ты бы его словами что-ль описал...), либо нахрена там рекурсия???
|
| Автор: maxim1000 8.8.2008, 20:52 |
я бы сказал, что это - обычная заливка |
| Автор: Partizan 8.8.2008, 20:53 |
| source777, +1 любая рекурсия представима в виде цикла. |
| Автор: source777 8.8.2008, 21:45 |
| Ну не скажи, она как минимум необычная, ведь цвет почти каждой точки дёргается(imgGetPixel) по 5 раз в варианте Sergio. Вот я и спросил зачем это делается? Да и в конце остаётся только 2 цвета, т.е. уже монохроматизация какая-то, а не заливка... Так же интересно было бы услышать обоснование рекурсивного захламления стека неизменяемыми параметрами color, range_color. А также пояснение названия метода(DoRock), мне лично сразу представился листинг с кучей идентификаторов типа DoRock, DoRock1, DoRock2,..., DoWork, DoSomething, DoSomethingElse |
| Автор: Partizan 8.8.2008, 21:48 |
| source777, DoRock можно перевести на русский язык как "Отжечь" |
| Автор: Sergio 8.8.2008, 23:33 |
| maxim1000,Вы правы. Это алгоритм заливки Partizan, код в студию. Я не очень знаю как это реализовать в моём случае Использовал рекурсию потому что важно быстро залить объэкт Есть нарисованая фигура напрмер вот такая: http://ipicture.ru/ Нужно её залить вот так: http://ipicture.ru/ Это один из кусков алгоритма. Помогите сделать его не рекурсивной. Спасибо. |
| Автор: Mayk 9.8.2008, 15:58 | ||
Сказали же. Чем не подходит? |
| Автор: Sergio 10.8.2008, 21:36 | ||
Mayk, как это реализовать? |
| Автор: Sartorius 10.8.2008, 21:58 | ||
если фигура не пересекает границу то покатит... |
| Автор: bsa 11.8.2008, 16:13 | ||||
http://www.sgi.com/tech/stl/queue.html
|