递归:基本案例与小版本

时间:2014-10-02 04:08:18

标签: c++ recursion data-structures

我正在审查递归的定义,在我的笔记中有关于递归问题的两个问题。一个问题是关于基本情况,另一个问题关于问题的小版本,我总是对哪个问题感到困惑...你能帮我找到吗?一种更好地理解这些概念的方法吗?

练习中的例子是:

  • 确定数组中是否存在“x”元素的函数
  • 确定字符串是否为回文的函数

两者:

  1. 查找基本案例
  2. 找到问题的小版本
  3. (实施递归解决方案)

1 个答案:

答案 0 :(得分:2)

基本案例

这是递归结束的一个简单案例。 (想想输入案例)例如。

  1. 如果字符串为空,则显然不包含' x'
  2. 如果字符串包含非字符或一个字符,则此字符串为回文结构。
  3. 注意:有时候有多个基本案例:例如斐波纳契数有两个基本情况(第一个和第二个数字)。

    小版本

    在这里,您想找到一个小步骤,您可以继续。 (考虑一个简单的动作来执行输入)

    1. 如果第一个字符是' x'则字符串包含' x'或者字符串的其余部分包含' x'。
    2. 如果第一个和最后一个字符相等且字符串之间的字符串也是回文,则字符串是回文结构。