java递归 java递归查询所有子节点


java递归 java递归查询所有子节点

文章插图
大家好,小跳来为大家解答以上的问题 。java递归查询所有子节点,java递归这个很多人还不知道,现在让我们一起来看看吧!
1、/*** 概念介绍:* 递归是一种方法(函数)调用自已编程技术 。
2、* 递归就是程序设计中的数学归纳法 。
3、* 例如:tri(n)=1if n=1*tri(n)=n+tri(n-1)if n>1* 可能while循环方法执行的速度比递归方法快,但是为什么采用递归呢 。
4、* 采用递归,是因为它从概念上简化了问题,而不是因为它提高效率 。
5、*/import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Recursion {//求三角数字的递归算法:1,3 , 6 , 10,15,21, ......static int theNumber;public static void main(String[] args) throws IOException {System.out.print("Enter a number: ");theNumber = getInt();//使用递归时调用,默认int theAnswer = triangle(theNumber);//使用非递归时调用//int theAnswer=triangle2(theNumber);System.out.println("Result: " + theAnswer);}public static int triangle(int n) {//递归方法 , 循环调用if (n == 1) {return 1;} else {return (n + triangle(n - 1));}}public static int triangle2(int n) {//非递归方法int total = 0;while (n > 0) {total = total + n--;}return total;}public static String getString() throws IOException {InputStreamReader isr = new InputStreamReader(***.in);BufferedReader br = new BufferedReader(isr);String s = br.readLine();return s;}public static int getInt() throws IOException {String s = getString();return Integer.parseInt(s);}}/*** 运行结果:* Enter a number:* 3* Result: 6*//*** 总结:* 使用非递归的方式更简洁,更易懂,运行效率更高,为什么还要用递归的算法呢 。
6、* 递归使规模逐渐降低的方式解决问题,以这种统一的方式解决足够复杂的问题 。
7、*/尚硅谷分享、务实、专业、良心坚持做良心教育支持良心教育,支持尚硅谷递归算法,你只需要知道算法规则从根源上理解他,剩下的你只需要多做练习题就ok了! 。
【java递归 java递归查询所有子节点】本文到此分享完毕,希望对大家有所帮助 。