目录
一、递归的概念
栈的一个重要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数。
递归是程序设计中一个强有力的工具,很多数学函数就是由递归定义的,例如阶乘函数:
2阶Fibonacci数列:
另外,有的数据结构,如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述;还有一些问题,虽然本身没有明显递归结构,但是用递归求解比迭代求解更简单,例如八皇后问题、Hanoi塔问题等。
目录
栈的一个重要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数。
递归是程序设计中一个强有力的工具,很多数学函数就是由递归定义的,例如阶乘函数:
2阶Fibonacci数列:
另外,有的数据结构,如二叉树、广义表等,由于结构本身固有的递归特性,则它们的操作可递归地描述;还有一些问题,虽然本身没有明显递归结构,但是用递归求解比迭代求解更简单,例如八皇后问题、Hanoi塔问题等。