首页 > 代码库 > 汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~
汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~
1* n=3.abc;
2* n-1=2,acb;
3* n-1=1,abc
1* n=3,执行hanoi(n-1,A,C,B);
=>2* n-1=2,acb执行hanoi(n-1,A,C,B);
=>3* n-1=1,abc执行if(n==1) 输出(n=1)A-》c
返回2* acb 输出 2 a-》b执行 hanoi(n-1,B,A,C);
=》n-1=1,cab 输出(n=1)c-》b
返回1* abc 输出 3 a->c
顺序执行 hanoi(n-1,B,A,C);=》n-1=2 ,bac (4*) 顺序执行hanoi(n-1,A,C,B) ;
=》n-1=1,bca 输出 (n=1)b->a
返回4* n=2 ,bac 输出 2 b-》c
顺序执行 hanoi(n-1,B,A,C); =》n-1=1,abc
输出 (n=1)a-》c
ps:为什么要返回4*?
猜想:n=2时,保留下来,去执行 hanoi(n-1,A,C,B);
n-1=1,
之后返回执行n=2
也可以理解为从1开始执行,像盖金字塔一样
汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。