powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Возвращается ли рекурсия к своим предыдущим вызовам?
6 сообщений из 6, страница 1 из 1
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33358458
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется определить в дереве путь к потомкам от данного узла.
В моем примере, возможно не самом удачном, рекурсивная функция test() доходит до первого "листа" и все. Как такое можно пофиксить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
<HTML>
<HEAD>
<SCRIPT language="JavaScript">

var tree = new Array();

tree[ 0 ] =  0 ;
tree[ 1 ] =  0 ;
tree[ 2 ] =  1 ;
tree[ 3 ] =  2 ;
tree[ 4 ] =  2 ;
tree[ 5 ] =  1 ;

var str = '';

// рекурсивно формирует путь по узлам
function test(j)
{
    for(i= 0 ; i<tree.length; i++)
    {
        if (tree[i]==j)
        {
            str+= i + ' => ';
            test(i);
        }
    }

    return str;
}

// выводит путь для данного узла
function fill_div(j)
{
    document.all.nodes.innerHTML = test(j);
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON type="button" onClick="fill_div(1)">Test</button><br><br>
<div id="nodes" style="padding:10px; width:30%; height:10%; border: 1px solid #a6a6a6">
<small>Требуется рекурсивно определить потомков узла <b> 1 </b>. Правильный ответ -  2  =>  3  =>  4  =>  5 </small>
</div>
<br>
<div style="padding:10px; width:30%; height:10%; border: 1px solid #a6a6a6">
<pre>
Корень
|
--- 1
    |
    ---2
    |  |
    |  ---3
    |  |
    |  ---4
    |
    ---5
</pre>

<small>Отношения родитель-потомок определяются в массиве следующим образом:</small><br>
<p style="font-family: fixedsys; font-size:12px; padding:10px; background-color: #E0EFFD">
tree[ 0 ] =  0 ;<br>
tree[ 1 ] =  0 ;<br>
tree[ 2 ] =  1 ;<br>
tree[ 3 ] =  2 ;<br>
tree[ 4 ] =  2 ;<br>
tree[ 5 ] =  1 ;
</p>
</div>
</BODY>
</HTML>
...
Рейтинг: 0 / 0
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33359827
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прикольный баг.
В функции test следует определить локальную переменную i
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33359863
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>прикольный баг.
да уж, ничего прикольного :)

>В функции test следует определить локальную переменную i
объявление переменной как
Код: plaintext
1.
var i;
ни к чему не превело.
...
Рейтинг: 0 / 0
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33360004
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня корректно работает. var i;
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33360014
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не мучаться багами из-за области видимости, переменные следует объявлять явно.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
(JS) Возвращается ли рекурсия к своим предыдущим вызовам?
    #33360203
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 maXmo

Спасибо, вылечил с помощью var i. Видимо страница подгружалась из кэша.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Возвращается ли рекурсия к своим предыдущим вызовам?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]