![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
В коде ошибок нет. Чтобы это проверить, достаточно запустить обход не 64, а, например, 60 клеток.
|
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
Эмулировать рекурсию... Интересно... Прошу пример... А вообще, любой рекурсивный алогритм можно заменить нерекурсивным - другой вопрос, какой он будет по размеру и сколько будет выполняться... Вот я теряюсь пока в догадках, как можно посторить обход дерева с возвратом без рекурсии
|
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Вот так сходу, коряво:
////////////////////// Создаём стек /////////////////////////////
var stack=null;
function push(){
var e=new Object();
e.prev=stack;
e.arguments=arguments;
stack=e;
}
function pop(){
if(stack!=null){
var e=stack;
var arg=e.arguments;
stack=e.prev;
delete e;
return arg;
} else return null;
}
/////////////////////////////////////////////////////////
function mypow(a,b){
createEmptyMovieClip("recur",1);
recur.a=a;
recur.b=b;
recur.onEnterFrame=function(){
if(--recur.b==0){
recur.onEnterFrame=function(){
if((arg=pop())!=null){
recur.a*=arg[0];
}else{
trace(recur.a);
delete recur.onEnterFrame; // END
}
}
}else push(recur.a);
}
}
mypow(2,20);
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
![]() |
Часовой пояс GMT +4, время: 06:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|