1.递归定义
定义:用一个概念本身直接或间接的定义它自己。
递归定义必须满足以下两个条件:
(1).至少有一条初始定义是非递归的。
(2).由已知函数值逐步递推计算出未知函数值。
2.单链表之递归结构
单链表是递归结构,每个结点的next域指向有其后诸结点组成的一条单链表,最后一个结点的next链指向空链表。因此,遍历等操作也可以采取递归算法。例如,递归的toString()方法声明如下:
public String toString(){
return"("+this.toString(this.head)+")";
}
public String toString(Node<E> p){//递归算法
if(p!=null){
return p.data.toString()+","+this.toString(p.next);//递归调用,相当于p=p.next;
}
return "";
}