java中的List遞歸

/*
* 讀取XML文檔
*/
public void ReadDocument(){
SAXReader reader = new SAXReader(); //創建SAXReader對象
try {
Document document = reader.read(new File("student.xml")); //獲取文檔對象
Element root = document.getRootElement(); //獲取根節點
this.ReadNode(root);
} catch (DocumentException e) {
e.printStackTrace();
}
}

/*
* 讀取節點 輸出節點中的值
*/
public void ReadNode(Element element){
List list = element.elements(); //獲得子節點
if(list.size()==0){
String str = element.getText(); //獲取節點中的文本
System.out.println(element.getName()+": "+str);
}else{
for (int i = 0; i < list.size(); i++) {
Element ele = (Element)list.get(i); //獲取節點對象
ReadNode(ele);
}
}
}

❷ 在JAVA中什麼是遞歸有什麼用

  1. 程序調用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種演算法在程序設計語言中廣泛應用。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。

  2. 遞歸的三個條件:

    1. 邊界條件

    2. 遞歸前進段

    3. 遞歸返回段,當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。


❸ JAVA中的遞歸方法

自己調用自己或幾個方法相互調用。

最經典的是求正整數階的演算法:

int fact(int i){

if(i<=1)return 1;

return fact(i-1)*i;

}

多數遞歸方法可以轉換成非遞歸方法。

一般同功能的非遞歸方法,執行效率要優於遞歸方法。但合理的使用遞歸方法,可以使代碼結構更清晰,更有可讀性,從而更方便維護。

❹ java中遞歸演算法是什麼怎麼算的

Java遞歸演算法是基於Java語言實現的遞歸演算法。遞歸演算法是一種直接或者間接調用自身函數或者方法的演算法。遞歸演算法實質是把問題分解成規模縮小的同類問題的子問題,然後遞歸調用方法表示問題的解。遞歸往往能給我們帶來非常簡潔非常直觀的代碼形式,從而使我們的編碼大大簡化,然而遞歸的思維確實跟我們的常規思維相逆的,通常都是從上而下的思維問題,而遞歸趨勢從下往上的進行思維。

二、遞歸演算法解決問題的特點:

【1】遞歸就是方法里調用自身。

【2】在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。

【3】遞歸演算法代碼顯得很簡潔,但遞歸演算法解題的運行效率較低。所以不提倡用遞歸設計程序。

【4】在遞歸調用的過程中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等,所以一般不提倡用遞歸演算法設計程序。

【5】在做遞歸演算法的時候,一定把握出口,也就是做遞歸演算法必須要有一個明確的遞歸結束條件。這一點是非常重要的。其實這個出口就是一個條件,當滿足了這個條件的時候我們就不再遞歸了。

三、代碼示例:

代碼執行流程圖如下:

此程序中n=5就是程序的出口。

❺ JAVA中遞歸的概念

說簡單點就是方法調用自身方法。給你個例子:
猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
public class MonkeyPeach {
public static void main(String[] args) {
System.out.println("第一天的桃子數:"+getPeach_Num(10, 1));
}

// 利用遞歸的方法來求第一天的桃子數,輸入參數為天數和當天的桃子數,輸出為第一天桃子數
public static int getPeach_Num(int day, int peach_num) {
if (day == 1)
return peach_num;
else if (day < 1 || peach_num < 0)
return 0;
else
return getPeach_Num(day - 1, (peach_num + 1) * 2);
}
}

❻ java中,遞歸什麼方法怎麼用

public static void main(String args[]) {
System.out.println(plus(3));

static int count = 0;

public static int plus(int i) {
if (i > 10) {
} else {
count = i + plus(i + 1);
}
//System.out.println(count);
return count;
}
這就是一個最簡單的遞歸

❼ java中遞歸的作用是什麼為什麼要用到遞歸

遞歸做為一種演算法在程序設計語言中廣泛應用.是指函數/過程/子程序在運行過程中直接或間接調用自身而產生的重入現象.遞歸是計算機科學的一個重要概念,遞歸的方法是程序設計中有效的方法,採用遞歸編寫程序能使程序變得簡潔和清晰.。
給你個求階乘的例子:
public long factorial(long n){//求n!
if(n==0)return 1;
else return n*factorial(n-1);//利用遞歸n!=n*(n-1)!直到0
}
比較經典的遞歸例子,漢諾塔:
public class T2010_7_9{
static int count=1;
public static void move(char j,char k){
System.out.println("第"+(T2010_7_9.count++)+"步:將一個盤子從柱子"+j+"拿到柱子"+k);
}
public static void hanoi(char a,char b,char c,int n){
if(n==1)move(a,c);
else{hanoi(a,c,b,n-1);
move(a,c);
hanoi(b,a,c,n-1);
}
}
public static void main(String[] args){
char a='A',b='B',c='C';
int num=3;//盤子的個數
hanoi(a,b,c,num);
}
}

❽ Java中的遞歸如何使用最好給出詳細的例題

程序調用自身的編程技巧稱為遞歸( recursion)。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。 注意: (1) 遞歸就是在過程或函數里調用自身; (2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。

上面是遞歸的定義,我現在給你一個JAVA最簡單的遞歸的我寫的例子,你可以對照著看:

public class Test { public static void main(String[] args) { output(1); } private static void output(int n) { // TODO Auto-generated method stub System.out.println(n); if(n<100){ n++; output(n); } } }

❾ java中遞歸演算法是什麼怎麼算的

一、遞歸演算法基本思路:

Java遞歸演算法是基於Java語言實現的遞歸演算法。遞歸演算法是一種直接或者間接調用自身函數或者方法的演算法。遞歸演算法實質是把問題分解成規模縮小的同類問題的子問題,然後遞歸調用方法表示問題的解。遞歸往往能給我們帶來非常簡潔非常直觀的代碼形式,從而使我們的編碼大大簡化,然而遞歸的思維確實跟我們的常規思維相逆的,通常都是從上而下的思維問題,而遞歸趨勢從下往上的進行思維。

二、遞歸演算法解決問題的特點:

【1】遞歸就是方法里調用自身。

【2】在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。

【3】遞歸演算法代碼顯得很簡潔,但遞歸演算法解題的運行效率較低。所以不提倡用遞歸設計程序。

【4】在遞歸調用的過程中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等,所以一般不提倡用遞歸演算法設計程序。

【5】在做遞歸演算法的時候,一定把握出口,也就是做遞歸演算法必須要有一個明確的遞歸結束條件。這一點是非常重要的。其實這個出口就是一個條件,當滿足了這個條件的時候我們就不再遞歸了。

三、代碼示例:

publicclassFactorial{

//thisisarecursivefunction

intfact(intn){

if(n==1)return1;

returnfact(n-1)*n;

}}
publicclassTestFactorial{publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Factorialfactorial=newFactorial();

System.out.println("factorial(5)="+factorial.fact(5));

}
}

代碼執行流程圖如下:

此程序中n=5就是程序的出口。