美文网首页
我对递归的三重理解

我对递归的三重理解

作者: 小石头在长大 | 来源:发表于2019-06-15 12:59 被阅读0次

第一重:二叉树的先序遍历

递归代码:

第二重:从二叉树的角度理解递归算法

举例:Generate Parentheses 生成括号

转换成二叉树的角度:

以下是输入整数2时,括号存储情况,进栈出栈顺序很清晰,一个节点代表调用一次递归函数,一共调用10次。值得一提的是,递归里面嵌套两个递归时,是二叉树,如果是三个递归,就是三叉树,以此类推。

第三重:从树的角度理解for循环嵌套递归

转换成树的角度:以下是 recur(0,2)的情况,一个节点代表一次递归,节点值为i,一共调用递归函数8次

二叉的含义是,左叉代表调用递归,右叉代表出栈后for循环+1调用递归,n+1为第一层分支个数,第二层开始都是二叉。

感觉,从树的角度出发理解递归,再多套几层循环或者递归也不怕了(猜的)

参考:

https://www.cnblogs.com/llguanli/p/7363657.html

https://blog.csdn.net/qq_33243189/article/details/80222629

https://blog.csdn.net/mikayong/article/details/51706508

相关文章

  • 我对递归的三重理解

    第一重:二叉树的先序遍历 递归代码: 第二重:从二叉树的角度理解递归算法 举例:Generate Parenthe...

  • 对递归函数的理解

    输入一个正整数N,输出从1到N的所有正整数: 1. 迭代的方式 2. 递归 刚开始不太理解,为什么分别在递归函数P...

  • 正则问题

    经典的递归DFS 我对递归的理解不够深啊看到括号 应该很轻松的想到是经典的递归问题 然后只有四个符号()x| 分别...

  • 前端学数据结构与算法(四):理解递归及拿力扣链表题目练手

    前言 再没对递归了解之前,递归一直我的噩梦,对于写递归代码一直都是无从下手,但当理解了递归之后,才惊叹到,编程真的...

  • 直观理解(尾)递归函数

    前言 我们都见识了不少关于递归与尾递归的各种长篇概论,本文将通过对下面几个问题的直观体验,来帮助加深对递归的理解。...

  • CSI讲义8:理解递归

    所有的计算都是递归;要理解递归首先要理解递归。 程序设计思想之一“递归”历来是同学们的理解难点。据说,**要理解递...

  • 4.3递归运行的机制:递归的微观解读

    前言:在4.1节和4.2节中我们分别通过数组以及链表对递归进行了应用,那时我们只是对递归进行了宏观理解--递归是将...

  • 数据结构之理解递归

    理解递归 要理解递归, 首先要理解递归 --佚名 递归是一种解决问题的方法, 他从解决问题的各个小部分开始, 知道...

  • 递归函数的调用深度理解

    学过函数后基本上不久就会接触到递归,对于刚接触递归或者没有很深入理解递归的时候对递归的调用是模糊的,是含混不清且自...

  • 对递归的一些理解

    当一个函数的运行期间调用另一个函数的时候,在运行被调用的函数之前,系统会怎样操作呢: 1. 将所有的实参,以及接下...

网友评论

      本文标题:我对递归的三重理解

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