美文网首页
递归思想

递归思想

作者: Stroman | 来源:发表于2018-02-08 15:44 被阅读44次

递归思想关注的是与当前步骤有关的上一步和下一步的关系,它不关注整体。

如何发现规律?

观察
逆推
重复

递归算法总是给人一种似懂非懂的感觉,因为你只清楚了当前该怎么做,但是你不知道算法运作的全貌,而想知道全貌却是很麻烦的一件事。

递归转换成非递归的通用方法

1、确定递归体。
2、入口递归体出栈。
3、被调用递归体逆序入栈。

实质

递归调用的内存过程是不断地入栈和出栈操作,该通用方法是模拟内存的操作而已。递归调用的全过程展开以后是树,一般来说是完全树,并不局限于完全二叉树,也可能是完全一叉树、完全三叉树、……完全n叉树,当然,也可以是普通的n叉树。递归的全部过程实际上是对这棵树的中序遍历,对于除二叉树以外的其他树可以理解为类中序遍历。
就单次遍历而言,它是与对树的深度遍历过程相似的过程。每次入栈或者出栈的过程中涉及到的结点数量并不是全部,最多是……,假如是n叉树,深度为k的话,那么最多需要n×(k-1)+1个单元。
之所以入栈的时候要逆序书写,是因为栈就是先进后出表,你要想得到正序的序列,那么输入就应该是逆序的。因为递归程序的顺序是按照人的正常思路来的,所以它是正序的。

名词解释
现在以汉诺塔问题为例解释一下

相关文章

  • 43_递归的思想与应用(上)

    关键词:递归的思想、递归模型的一般表示法、递归函数 0. 递归的思想 递归是一种数学上分而自治的思想 将原问题分解...

  • 递归思想

    递归思想关注的是与当前步骤有关的上一步和下一步的关系,它不关注整体。 如何发现规律? 观察逆推重复 递归算法总是给...

  • 递归思想

    递归的含义: 就是一个函数内部再调用该函数本身的一种情形,这是语法形式上的。 具体场景是: 如果要解决的“最终问题...

  • 递归思想

    递归就是在函数体内调用本函数一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当...

  • 递归思想

    1、概念 程序调用自身的编程技巧称为递归(recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个...

  • 链表算法之-反向打印单链表

    思想:递归

  • 二叉树算法之2-计算二叉树节点数

    算法思想:递归

  • 【python】递归思想和快速排序法

    一、递归思想 递归思想,其实就是自己调用自己。 上图中,我们写了个简单的递归函数,实现阶乘的算法;但程序会报错,显...

  • 总结

    主要思想摘自《漫谈递归:递归的思想》,同时也是本文的参考资料。 关于递归上面的链接讲的很多,也很详细,开辟这个...

  • js 总结六 7-18

    递归 递归技巧 假设递归函数已经写好 寻找递推关系 将递推关系的结构转换为递归体 将临界条件加入到递归体中递归思想...

网友评论

      本文标题:递归思想

      本文链接:https://www.haomeiwen.com/subject/bqpttftx.html