我刚刚开始学习递归,并能够使用它编写一个简单的阶乘程序,没有太多问题。现在我正在尝试编写一个递归方法,该方法以相反的顺序写入数组,但我不知道我做错了什么。我错过了什么?非常感谢。
import java.io.*;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
}
public static void reverseDisplay(int[] ary, int position){
if(position > 0)
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
}
尝试:
import java.io.*;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
reverseDisplay(myArray,0);
}
public static void reverseDisplay(int[] ary, int position){
if(position == ary.length){
return;
}
reverseDisplay(ary, position + 1);
System.out.print(ary[position]);
}
}
如果位置==ary。长度完成递归,否则递归调用反向显示,然后打印数组的当前位置。
在执行递归时,需要一种称为基本情况的东西。您需要使用基本情况来结束递归,否则将导致堆栈溢出。
您可以尝试这样做。返回
语句阻止递归是无穷无尽的。
public static void reverseDisplay(int[] ary, int position){
if(int == -1)
return;
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
>
您不调用递归方法。
您有一个无休止的递归,因为由于缺少括括号,逆转显示()
总是被执行。
您的方法应为:
import java.io.IOException;
public class Recursion {
public static void main(String[] args) throws IOException{
int myArray[] = {1,2,3,4,5,6,7,8,9,10};
reverseDisplay(myArray, myArray.length -1);
}
public static void reverseDisplay(int[] ary, int position){
if(position >= 0) {
System.out.print(ary[position]);
reverseDisplay(ary, position - 1);
}
}
}
问题内容: 我还没有找到满足我的功能特定需求的任何东西,是的,这是用于家庭作业。 所以我有: 前提条件:x.length> 0 我不能让函数返回任何东西,而唯一的参数是数组这一事实使我感到困惑。 我已经尝试过将循环与递归一起使用,但是我尝试过的一切似乎都以生成函数的无限实例结束。 我已经有了一个想法/建议与该函数一起使用另一个函数,但是,当前如何递归地使用原始函数超出了我的范围。 任何帮助表示赞赏
我做了一个使用递归方法反转单链表的函数。然而,我在执行下面的代码时遇到了一些困难: 我应该如何在ReverseCursive函数/方法中传递第二个参数,以便执行它? 作为第二个参数,我想简单地传递链表的头节点。但是我不知道如何从类的init方法中获取头节点linked_list 我试了几件事,但都解决不了。也许我不太擅长OOP概念。有人能帮我解决这个问题吗?
问题内容: 我已经在一个类的Java项目上工作了一段时间。它是链表(此处称为,包含称为的简单节点)的实现。问题是,一切都必须使用递归算法来完成。我可以用一种方法来做所有的事情: 现在,我的函数只是调用一个带有参数以允许递归的辅助函数。 我的助手功能具有的签名。 目前,我使用堆栈来迭代工作,但这不是规范所要求的。我在C语言中找到了一种算法,该算法可以递归地将其递归逆转并将其转换为Java代码,并且可
问题内容: 我已经尝试了一段时间,但无法正常工作。我正在尝试一种无需使用字符串或数组即可反转整数的方法。例如,123应该以整数形式反转为321。 我的第一次尝试: 我也尝试使用它,但是似乎弄乱了中间数字: 我尝试查看网站上的一些示例,但是无法使其正常工作。为了进一步说明,我不能为此项目使用String或数组,而必须使用递归。有人可以帮我解决问题。谢谢。 问题答案: 关于什么: 当然,这是假定的。
我试图编写一个递归方法来反转队列中的所有元素。 在实现队列的抽象类myQueue中 接口队列 在我的反向方法中,我的目标是不断地递归地从原始队列中退出队列(删除第一个元素),直到队列为空。每次我退出队列时,我都会将该对象放入一个临时队列中。当我的队列为空时,我将从临时队列重新排队到原始队列。 我的第一个问题是定义一个新的临时队列,在我的例子中是bufferQueue。我得到以下信息:
本文向大家介绍单链表反转 递归法Java实现相关面试题,主要包含被问及单链表反转 递归法Java实现时的应答技巧和注意事项,需要的朋友参考一下 经历了很多面试,面试官最爱考察的算法无非是斐波那契数列和单链表反转,尽管是这些都是基础知识,然而我对单链表反转有更多的想法。 递归法是我早期最爱在面试中使用的算法,很有逼格,写起来非常优雅,非常好理解。 先定义链表数据结构 如上代码所示 递归法会逐层确定该