第章 栈和队列.ppt

下面给出三个盘子搬动时hanoi(3, A, B, C) 递归调用过程, 如图3.5所示。 hanoi(2,A,C,B): hanoi(1,A,B,C) move(A-C) 1号搬到C move(A-B) 2号搬到B hanoi(1,C,A,B) move(C-B) 1号搬到B move(A-C) 3号搬到C hanoi(2,B,A,C): hanoi(1,B,C,A) move(B-A) 1号搬到A move(B-C) 2号搬到C hanoi(1,A,B,C) move(A-C) 1号搬到C 图3.5 Hanoi塔的递归函数运行示意图 递归的优点 通过上面的例子可看出,递归既是强有力的数学方法, 也是程序设计中一个很有用的工具。其特点是对递归问题描述简捷,结构清晰,程序的正确性容易证明。 递归算法求解问题的要素 递归算法就是算法中有直接或间接调用算法本身的算法。 递归算法的要点如下: (1) 问题具有类同自身的子问题的

文档评论(0)

1亿VIP精品文档

相关文档