码迷,mamicode.com
首页 > 其他好文 > 详细

汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~

时间:2017-05-14 18:52:30      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:学习笔记   为什么   学习   汉诺塔   返回   开始   div   cab   小伙伴   

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开始执行,像盖金字塔一样
 

汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~

标签:学习笔记   为什么   学习   汉诺塔   返回   开始   div   cab   小伙伴   

原文地址:http://www.cnblogs.com/fanfusuzi/p/6853128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!