Tag: 递归

使用SAX解析具有未知递归量的XML结构

我必须使用SAX解析器在JAVA中解析XML结构。 问题是结构是递归的,具有未指定的递归计数。 这仍然不是什么大问题,最重要的是我无法利用XML命名空间function,并且每个递归级别的标签都是相同的。 这是结构的一个例子。 正如您所看到的那样,有一个递归,更好的是一个未定义的递归数。 现在我的问题是如何为每次递归提取所有数据并将其保存在HashMap中。 我可以为Tags的出现定义一个ContentHandler并让它在HashMap提取内容并将其放回主内容处理程序中定义的主 HashMap中,但我不确定这样做会很热。 如何在不使用命名空间的情况下提取和保存递归XML结构的内容?

multithreading和递归一起

我有递归代码,以深度优先的方式处理树结构。 代码基本上如下所示: function(TreeNode curr) { if (curr.children != null && !curr.children.isEmpty()) { for (TreeNode n : curr.children) { //do some stuff function(n); } } else { //do some other processing } } 我想使用线程来加快完成速度。 大部分时间都花在遍历上,所以我不想只创建一个线程来处理“其他处理”,因为它不需要那么长时间。 我想我想在“做一些事情”时分叉线程,但是它会如何工作?

通过递归查找数组中最大的正int

我决定递归地实现一个非常简单的程序,看看Java如何处理递归*,并且有点简短。 这就是我最后写的: public class largestInIntArray { public static void main(String[] args) { // These three lines just set up an array of ints: int[] ints = new int[100]; java.util.Random r = new java.util.Random(); for(int i = 0; i largest) largest = i; return largest; } private static int recursive(int[] ints, int largest) { if(ints.length == […]

递归Karatsuba乘法不起作用?

我正在尝试通过递归调用实现Karatsuba乘法 。 下面的代码应该可行,但我一直得到错误的答案。 有什么想法吗? public static long karatsuba(long x, long y){ //base case: if (x < 10 || y < 10) return x * y; //length of digits: int xSize = String.valueOf(x).length(); int ySize = String.valueOf(y).length(); int N = Math.max(xSize, ySize); //split each number in half (by length of digits): long numX_hi = Long.valueOf((String.valueOf(x).substring(0, N/2))); […]

如何在Java中实现递归

如何在Java中实现递归? 我的问题是在Java中执行recusrsive方法时会发生什么。 我隐约明白它使用了Stack,但我正在寻找一个清晰的例子说明。

斐波那契数列 – 递归求和

好吧,我最初编写了一个简单的代码,根据用户输入从系列中返回斐波纳契数。 n = 5将产生3 .. static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) return 1; else return (fibonacci(n – 1) + fibonacci(n – 2)); } 我正在考虑修改代码以返回系列的总和而不是仅仅返回系列中的值,并且在尝试执行总和时我不小心将1添加到return语句中,令我惊讶的是,它正确地返回了总和。 对于n = 5,以下代码将返回7。 我不确定这是否是计算总和的正确方法…… 如果我加1,我仍然无法弄清楚该系列的总和是如何工作的。有人可以解释一下吗? static int fibonacci(int n) { if (n == 1) return 0; else if (n == 2) […]

使用递归的幂函数

我必须用Java编写一个power方法。 它接收两个整数,如果它们是正数或负数则无关紧要。 它应该具有O(logN)复杂性。 它还必须使用递归。 我当前的代码得到两个数字,但我保持输出的结果为零,我无法弄清楚为什么。 import java.util.Scanner; public class Powers { public static void main(String[] args) { float a; float n; float res; Scanner in = new Scanner(System.in); System.out.print(“Enter int a “); a = in.nextFloat(); System.out.print(“Enter int n “); n = in.nextFloat(); res = powers.pow(a, n); System.out.print(res); } public static float pow(float a, float n) […]

在JSP页面上显示树

我需要在JSP页面上显示树。 我怎样才能做到这一点? 我有以下对象: public class Node { private Long id; private Long parentId; private String name; private List children; // Getters & setters }

用于将字符串与通配符模式匹配的递归函数

所以我一整天都试图解决这个任务,只是无法得到它。 以下函数接受2个字符串,第2个(不是第1个)可能包含* (星号)。 *是字符串的替换(空,1个字符或更多),它可以出现(仅在s2中)一次,两次,更多或根本不存在,它不能与另一个* ( ab**c )相邻,无需检查。 public static boolean samePattern(String s1, String s2) 如果字符串具有相同的模式,则返回true。 它必须是递归的 ,不能使用任何循环,静态和全局变量。 可以使用局部变量和方法重载。 只能使用以下方法: charAt(i) , substring(i) , substring(i, j) , length() 。 例子: 1: TheExamIsEasy ; 2: The*xamIs*y →true 1: TheExamIsEasy ; 2: Th*mIsEasy* →true 1: TheExamIsEasy ; 2: * →true 1: TheExamIsEasy ; 2: TheExamIsEasy →true 1: TheExamIsEasy […]

如何为组合编写递归函数

我正在阅读递归函数,我理解如何编写基本函数,但我对我的学习指南有一个我不明白的问题。 。 编写名为Combinations的递归函数的代码,用于计算nCr。 假设nCr可以如下计算: nCr = 1 if r = 0 or if r = n and nCr = (n-1)C(r-1) + (n-1)Cr 有人可以帮助我解决这个问题,还是以外行的方式解释一下? 谢谢!