数据结构总结-递归杂想
数学方法思考递归和动规
递归方法目前【2022/11/1】的一个分类思考:
抽象递归
主要利用递归栈的功能,来做遍历,输出。
实现 DFS(先序遍历) 遍历节点
实现 汉诺塔
抽象递归十分重要的一点是要赋予每一个符号具体意义,如果只是利用遍历效果,可以理解为,从上到下输出的时候是顺序的,这个递归下面的是栈弹出的,然后划分左右的话,就可以理解为递归子问题的划分,
Recur(…)
…
Recur(…)
这种特点是不对值进行更改,只是通过传参进行变动,获得需要的输出效果,同时也不需要接收参数,适合多路效果,或者只是做统计,对于做统计可以利用下面的值递归的思想来做到统计
值递归
主要利用递归自带的 F(n) = F(n-1) 的迭代式效果
求 高斯 :F(n) = 1 + F( n -1 )
求 斐波 :F(n) = F(n-1) + F(n-2)
求 阶乘 :F(n) = n*F(n-1)
其他相关的求具体值得公式,这种解决方法很简单,直接按照公式写就行了。
抽象与值的结合类型
这一部分就有数论的感觉了。
- 反转链表
- RES{ cur cur.next null } = RES { cur.next cur null }
- 归并排序
- RES{ l r } =merge( RES{l} , RES{r})
更新一下
记录一下,这个后面所提到的,可以从函数式编程思想中练习
评论