Recur25. Дано дерево глубины $$N$$, каждая внутренняя вершина которого имеет $$K$$ $$(<10)$$ непосредственных потомков (нумеруются от $$1$$ до $$K$$). Корень дерева имеет номер $$0$$. Записать в текстовый файл с данным именем все возможные пути, ведущие от корня к листьям. Перебирать пути, начиная с «самого левого» и заканчивая «самым правым» (при этом первыми заменять конечные элементы пути).
Решение:
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 |
program Recur25; var F:Text; K,N:Integer; FN:String; procedure node(Ancestors:String; lvl:integer); var F:Text; i:integer; begin inc(lvl); if lvl=N+1 then begin Assign(F,FN); Append(F); Writeln(F,Ancestors); Close(F); end else for i:=1 to K do node(Ancestors+chr(i+48),lvl); end; begin Write('N:'); readln(N); Write('K:'); readln(K); Write('FileName:'); readln(FN); Assign(F,FN); Rewrite(F); Close(F); node('0',0); end. |
Другие задачи из раздела Recur можно посмотреть здесь.
Комментарии: