Algorithm 算法图

Algorithm 算法图,algorithm,Algorithm,这是最大搜索算法图: 所以,我想知道如何绘制河内塔计划的图表: package tunl; public class TowersApp { static int n = 3; public static void main(String[] args) { TowersApp.doTowers(3, 'A', 'B', 'C'); } public static void doTowers(int n, char from, char

这是最大搜索算法图:

所以,我想知道如何绘制河内塔计划的图表:

package tunl; 

public class TowersApp {
    static int n = 3;

    public static void main(String[] args) {
        TowersApp.doTowers(3, 'A', 'B', 'C');
    }

    public static void doTowers(int n, char from, char inter, char to) {
        if (n == 1) {
            System.out.println("disk 1 from  "+ from + "  to  " + to);
        } else {
            doTowers(n-1, from, to, inter);
            System.out.println("disk  " + n + "  from  " + from + "  to  " + to);
            doTowers(n-1, inter, from, to);
        }
    }
}
我画不出来。
任何人都可以帮助我

递归实现不能通过这种类型的流程图直接建模。1)一种解决方案是将算法重写为非递归,然后绘制流程图

我承认这不是很令人满意



1) 从技术上讲,它们可以,但它们不再有用,因为它们不再表示递归调用所隐含的控制流和数据堆栈。

您的难题是算法是递归的。一种选择是将其转换为具有显式堆栈的迭代算法。但这会丢失一些算法的高级结构。最好显示递归结构


我不知道递归的标准流程图习惯用法,但我要画的是流程图的基本算法,并在其周围放置一个与调用中使用的名称相同的框。由于调用的参数与父调用略有不同,因此可以将这些参数分配给新变量,然后将这些变量作为参数传递。调用本身可以标记为“call doTowers”或类似的名称。

现在有一个很好的机会来画一个手绘圆圈:DDo你有这个图表的英文版本吗?哇,我不知道还有人还在用流程图编程!Dung在你的语言中是什么意思?@Marcelo Cantos他们现在每天都被称为“BPML”或“活动图”