C#我对递归的理解

本文详细探讨了递归的理论和实践,从理论上的自我调用来实操中的递归案例分析,特别是在C#中如何使用递归实现树结构。作者强调递归类似于循环,有其特定的停止条件,不当使用可能导致内存泄漏。通过类比AJAX同步,帮助读者更好地理解递归的工作原理,并鼓励通过实践来掌握递归。
摘要由CSDN通过智能技术生成

一、递归在理论方面的理解
二、递归在实操方面的理解
三、实操、按例
四、我对递归的理解
五、结语

一、递归在理论方面的理解

1、在理论上,就是很简单的说法:自己调用自己

二、递归在实操方面的理解

比如下面这个案例,就是一个典型使用递归的。其实递归难不在理解理论方面,而是难在实操方面。我本人之前也是一直在实操方面不理解的,但是后面自己去琢磨有了理解。

   public int fibonacci(int n)
   {
       if(n==1||n==2)
           return 1;
       else
           return (n+fibonacci(n-1)+fibonacci(n-2));
   }

//下面是把一个一个数字带进去,由结果推出过程
eg.fibonacci(3)

在这里插入图片描述

三、实操、按例

如果还是有点不理解的话,我在这里写一个树,用递归实现
编译器:VS2019
控件:微软原生树控件 [Tree]
框架:.Net FrameWork
环境版本:4.5.2

	/*写树要注意的点:
		1、一般写树要有两个Id,一个是父级Id,另一个是子级Id
		2、数据的格式也是有一定要求的,不然即使代码没有错也很容易因为数据格式有点小毛病而出现bug
		3、写树的时候很容易出现bug,所以在写的时候最好有一个异常的设置[抛异常或者是try{}catch{}]
	*/

四、我对递归的理解

1、我觉得递归有点像:另一种循环而已,就是说递归也有自己停止调用的条件
2、可以把递归和循环联系起来,比如循环它是某个操作一直循环而已直到有一个条件让它停止而已,循环部分的代码没有写好很容易进入死循环。同理,递归也是一样的。递归一直循环某一步操作,也是有自己的出口的,而递归没有写好也很容易一直调用自己导致内存泄漏。
3、我觉得递归还有点像:AJAX中的同步
解释:总所周知,AJAX同步就有点像中国以前的童养媳,男的买一个小女孩要等小女孩长大才可以结婚[这个例子有点小不正经>_<]。而递归也类似,如果不太懂的可以结合我写树的例子。

五、结语

递归可能是有点绕和有点晕,但是你可以自己多些几个。多断点,找出一些规律就好了

我自己写了一个递归按例,可以去瞅瞅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值