A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guobin_lu 中级黑马   /  2013-3-30 16:04  /  1085 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看杨老师的视频  讲到递归有一些不明白  为什么是自己调用自己,  会等待第一次 执行完毕

  1. private void button2_Click(object sender, EventArgs e)
  2.         {
  3.             foreach (TreeNode node in treeView1.Nodes)
  4.             {
  5.                 //分析过程中“讲理”
  6.                 DisplayNode(node);
  7.             }
  8.         }

  9.         /// <summary>
  10.         /// 显示当前节点的信息,如果有子节点,则显示子节点
  11.         /// </summary>
  12.         /// <param name="node"></param>
  13.         void DisplayNode(TreeNode node)
  14.         {
  15.             textBox1.AppendText(node.Text+"\r\n");
  16.             //如果节点有子节点
  17.             if (node.Nodes.Count > 0)
  18.             {
  19.                 //遍历当前节点的子节点
  20.                 foreach (TreeNode childNode in node.Nodes)
  21.                 {
  22.                     //显示子节点。不用仔细分析调用过程
  23.                     DisplayNode(childNode);
  24.                 }
  25.             }
  26.         }

  27.         //log4net、quartz
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
递归就是自己调用自己,但是中间会进行条件判断,当条件不满足的时候。递归就会结束

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
递归本身调用自己这个是必须的。不然怎么叫递归。加入求1+2+3+...+n 的和,用递归是这样写的。
  1. public static int sum(int n)
  2. {
  3.                 if(n==1)return 1;
  4.                 return n + sum(n-1);
  5. }
复制代码
递归搞点简单的理解一下,然后就懂了

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
怎么说呢?你若学习了数据结构就很好理解了。
函数调用就是栈的的一个操作,先进后出。

qw.rar

480 Bytes, 下载次数: 55

回复 使用道具 举报
A{
    B{
          C{}
     }
}
ABC是3个函数,关系是AS调用B,B调用C。
左大括号代表方法体的开始,右大括号方法体的结束。
A调用B的前提是B执行结束,B调用C的前提是C执行结束。
C执行结束,返回函数B的位置开始执行B,
B执行结束,返回函数A的位置开始执行A。
递归就是A=B=C,每次递归方法名一样,返回值类型一样,只有参数不一样。
这样也许能帮助您理解??
建议:数据结构中栈的基本知识可以巩固一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马