Tag: 递归

如何使用递归函数返回ArrayList

我是java新手,我一直在努力…我必须做一些功课,我从中解决了很多,但在某些方面,我不知道该怎么做。 我的问题:我必须为二叉树构建一些函数(例如添加节点,计数节点,删除节点等)。 他们中的大多数我都能找到自己的算法。 现在我正在努力使用递归方法。 我在其中添加了注释来解释我的问题是什么: public List getPreOrderList() { //TO DO: //this function should return a list of the nodes in pre-order (value, left, right). //It must be implemented recursively!!! //THE PROBLEM: //If i create an ArrayList inside the function, the //recursion will generate each time a new ArrayList. //At the end i get as […]

递归检查回文

我有一个类来检查字符串是否是回文。 我有两个问题。 1)这是检查回文的最有效方法吗? 2)这可以递归实现吗? public class Words { public static boolean isPalindrome(String word) { String pal = null; word = word.replace(” “, “”); pal = new StringBuffer(word).reverse().toString(); if (word.compareTo(pal) == 0) { return true; } else { return false; } } } 有一个测试课来测试这个…怀疑它需要但是在这里无论如何,如果有人关心尝试它能够帮助我解决上述两个问题中的任何一个… public class testWords { public static void main(String[] args) { if (Words.isPalindrome(“a”) […]

递归和返回关键字

我目前正在学习Java教程,现在正在使用Recursions。 我有以下代码来计算传递给阶乘方法的任何数字的阶乘 public class App { public static void main(String[] args) { //Eg 4! = 4*3*2*1(factorial 4) System.out.println(factorial(4)); } private static int factorial(int value){ //System.out.println(value); if (value == 1){ return 1; } return factorial(value – 1)*value; } } 我无法理解这部分内容 if (value == 1){ return 1; } return factorial(value – 1)*value; 我的理解是return关键字只是终止方法,和/或返回方法声明的相同类型的值(即int,String等)。 运行以下行时会发生什么? return factorial(value – […]

当有2个递归语句如下面的程序时,如何执行递归?

我之前发过一个问题但是我不够清楚。 我很抱歉这个混乱,但我的意思是,如果有一个程序,如: TreeNode createMinBST(int arr[], int start, int end) { if(end< start) return null; int mid = (start+end)/2; Treenode n= new Treenode(arr[mid]); n.left= createMinBST(arr, start, mid-1) //LINE a n.right= createMinBST(arr, mid+1, end); //LINE b return n; } LINE a和LINE b是如何展开的(就像在编码面试书中所说的那样)或它是如何工作的? LINE a是否一直到基本情况并返回值,然后LINE b执行? 或者两个递归语句同时归结为基本情况? 如果有人可以解释从上面给出的代码创建最小BST的明确路径,那么理解多个递归语句(这里是2-线a和线b)是如何发生的将是非常有帮助的。 非常感谢

初学者挥动递归

第一次在这里发帖 这个编程任务让我难以接受,代码如下: import java.awt.*; import javax.swing.*; public class HTree extends JPanel { private Color color = new Color((int)(Math.random() * 256), (int)(Math.random() * 256), (int)(Math.random() * 256)); public void draw(Graphics g, int n, double sz, double x, double y) { if (n == 0) return; double x0 = x – sz/2, x1 = x + sz/2; […]

带有递归方法的嵌套缩进输出

我有一个使用递归方法打印出多行的赋值,每行前面有3个空格。 这是所需输出的图片( http://sofzh.miximages.com/java/mek2QMz.png )。 这是我到目前为止的代码: public class Prog6d { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int input = scan.nextInt(); System.out.println(printFactorial(input)); } //Calculates the factorial public static int printFactorial(int input) { if (input == 1) { return 1; } System.out.println(“factorial(” + input + “)”); System.out.print(” “); return input*printFactorial(input-1); } } 我知道如何使用for循环使空格正确显示,但我不知道如何使用递归来完成此操作。

Terrain / Mountain算法无法正常工作

我想创建一个有山的地形,使用一个非常基本的原理,由这个高度映射显示: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 0 1 2 3 2 1 0 0 […]

检查给定字符串是否是递归的平衡括号字符串

我作为java中的新手(以及编程本身)遇到了麻烦,并给了我们一个赋值。 赋值分为3个部分,以检查给定的字符串是否具有平衡括号。 “规则”如下: “abcdefksdhgs” – 是平衡的 “[{aaadd}]” – 是平衡的 “[ff{<gg}]” – 不平衡(’ < ‘没有关闭) “{” – 不平衡 赋值的第一部分是编写一个方法来获取包含字符串的char数组,并找到包含括号的FIRST索引(=数组单元格),其中一个如下: } , { , ] , [ , ( , ) , > , < 那当然很容易做到: /** * bracketIndex – 1st Method: * this method will get a single string (read from the text file), * and […]

如何使用递归获得父母的所有孩子,然后是他们的孩子

问候: 我在JSP Web应用程序中有父事务的比喻。 我将事务ID存储在数据库中,并且要求显示父项的所有子项,然后显示父项子项的后续子项。 实际上,这个父母及其子女的名单永远不会超过4或5级,但我需要考虑到它可以比这更多层次。 我试过这样做会递归如下: private static void processChildrenTransactions( AllTremorTransactionsVO parentBean, ArrayList childCandidatesList ) { ArrayList childList = new ArrayList(); for (AllTremorTransactionsVO childTransactions : childCandidatesList) { if (childTransactions.getParentGuid() != null) { if (childTransactions.getParentGuid().equals(parentBean.getTransactionGuid())) { childList.add(childTransactions); } } } for (AllTremorTransactionsVO allTremorTransactionsVO : childList) { processChildrenTransactions(allTremorTransactionsVO, childList); } return; } 这不起作用,在循环运行时生成堆栈溢出。 关于如何做到这一点的任何想法?

给定分层路径,获取字段的值

我有一个包含子属性的对象,它也有子属性等等。 我基本上需要找到检索对象上特定字段值的最佳方法,因为它是一个完整的分层路径作为字符串。 例如,如果对象具有字段company(Object),其字段client(Object)具有字段id(String),则此路径将表示为company.client.id 。 因此,给定一个通向该字段的路径,我试图获取对象的值,我将如何进行此操作? 干杯。