《数据结构》 第三章 栈和队列(下)
《 数据结构》 (下)
数据结构 3.3栈与递归的实现 高鑫地两角音整渴器鼠标努透站羲列调用语句 A(){ B(){ C(){ A(); C(): B(); A直接调用自己 B间接调用自己 tjm
数据结构 tjm A ( ) { . A( ) ; . } B( ) { C( ) { . . C( ); B( ); . . } } A 直接调用自己 B间接调用自己
数据结构 以下三种情况常常用到递归方法: 定义是递归的 数据结构是递归的 问题的解法是递归的 递归算法的编写: 1)将问题用递归的方式描述。 2)根据问题的递归描述编写递归算法。 递归描述包括两项: 基本项(终止项):描述递归终止时问题的求解。 递归项:将问题分解为与原问题性质相同但规模较 小的问题
数据结构 tjm
数据结构 定义是递归的 【例1】阶乘函数 1, 当n=0时 n*(n-1)1,当n≥1时 求解阶乘函数的递归算法: long Factorial long n { if (n==0)return 1; else return n*Factorial(n-1) }
数据结构 tjm 当 时 当 时 ( 1)!, 1 1, 0 ! n n n n n
求解n!的过程 数据结构 参数 计算 返回 0 01=1 1 参数 计算 返回 1*Factorial(0) 1 参 返 参数 计算 返回 数 2 2*Factorial(1) 2 2 回 传 参数 计算 返回 3 3*Factorial(2) 6 递 6 值 参数 计算 返回 4 4*Factorial(3) 24 24 主程序main
数据结构 tjm