递归问题实际上是入栈出栈的一个过程,但有时候也会比较难理解,虽然用起来是比较方便的。
1 #include2 #include 3 using namespace std; 4 #define SECONDS_PER_YEAR 365*24*3600 5 void move(int n, char a, char b) 6 { 7 cout< <<":" < <<"--->"<< >num;26 hanio(num,'A','B','C');27 system("pause");28 return 0;29 }
解释一下上图,
n=3时,会把h(2,1,3,2),move(1,3),h(2,2,1,3)压入栈中
n=2时,会把h(2,1,3,2)弹出,压入h(1,1,2,3),move(1,2),h(1,3,1,2)压入栈中,依次这样。。。