递归java代码实现 递归 java

用java递归方法实现

1、递归做为一种算法在程序设计语言中广泛使用,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。

创新互联-专业网站定制、快速模板网站建设、高性价比卢氏网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式卢氏网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖卢氏地区。费用合理售后完善,十载实体公司更值得信赖。

2、递归算法一般用于解决三类问题:

1)数据的定义是按递归定义的。(Fibonacci(斐波那契)的函数)

2)问题解法按递归算法实现。(回溯)

3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)

java递归查询子节点,按给的示例代码实现

代码如下:

import java.util.ArrayList;

import java.util.List;

class Org {

private String id;

private String name;

private String pid;

public Org(String id, String name, String pid) {

this.id = id;

this.name = name;

this.pid = pid;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPid() {

return pid;

}

public void setPid(String pid) {

this.pid = pid;

}

@Override

public String toString() {

return "Org [id=" + id + ", name=" + name + ", pid=" + pid + "]";

}

}

public class App {

static void find(ListOrg list, String pid) {

list.stream().filter(p - p.getPid().equals(pid))

.forEach(org - {

System.out.println(org);

find(list, org.getId());

});

}

public static void main(String[] args) {

ListOrg list = new ArrayList();

list.add(new Org("111", "公司", "0"));

list.add(new Org("222", "部门", "111"));

list.add(new Org("333", "小组", "222"));

list.add(new Org("444", "员工1", "333"));

list.add(new Org("555", "员工2", "333"));

find(list, "0");

System.out.println("------------------------------------");

find(list, "111");

}

}

运行结果:

JAVA中能够实现方法的递归调用吗?如何实现?

使用递归计算5的阶乘,递归代码的书写得找出原问题两个显著的特点,1.上一层与下一层之间的关系,或者公式。2.跳出递归的条件。

阶乘:0!=1,1!=1,2!=1!*2,3!=2!*3,4!=4*3!,5!=5*4!。由这6个式子我们可知,求5的阶乘,得求4的阶乘,求4的阶乘必须先求3的阶乘,以此类推。故,什么时候才能停止往下(继续往下找呢),我们只0!=1,这就是跳出递归的条件,这是固定的。上下层之间的关系,5!=4!*5,假设n=5,那么用未知数可表示n!=(n-1)!*n。具体代码如下。

public

class

Test

{

public

static

void

main(String[]

args)

{

int

num=fac(5);

System.out.println(num);

}

public

static

int

fac(int

n){

if(n==1){//跳出递归的条件:0!=1

return

1;

}else{

int

num=n*fac(n-1);//上下层的关系:n!=(n-1)!*n

return

num;

}

}


分享题目:递归java代码实现 递归 java
新闻来源:http://scyanting.com/article/ddgehpc.html