数据结构第3讲递归.pptVIP

  • 7
  • 0
  • 约1.7千字
  • 约 11页
  • 2017-06-17 发布于湖北
  • 举报
递归的基本概念 递归算法的设计 递归调用的实现原理 例 设有一个表头指针为h的单链表。试设计一个算法,通过遍历一趟链表,将链表中所有节点的链接方向逆转。 方法2 Void Reverse(LinkList *L){ //有表头结点,L即为h。直指链表首元结点。链表全部逆转后,表头结点的link指针链接到尾结点,尾结点成为新的首元结点 LinkNode*p= L-link,*pr; L-link=NULL; While(p!=NULL){ pr=p;p=p-link; //摘下剩余链首元结点 pr-link-link=L-link;L-link=pr; //作为首元结点插入结果链 } } * 递归的定义 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的;若一个过程直接地或间接地调用自己, 则称这个过程是递归的过程。 在以下三种情况下,常常用到递归方法。 定义是递归的 数据结构是递归的 问题的解法是递归的 递归的概念 递归的设计 设计思想:寻找递归关系,确定递归出口。 递归关系:将整个问题分解成若干个子问题,通过分别求解子问题,最后获得整个问题的解,其中部分子问题的解决方法和解决整个问题的方法一样,这就是递归关系。 递归出口:整个问题分解成若干个子问题,子问题继续分解,如此反复进行,直到子问题无需再分

文档评论(0)

1亿VIP精品文档

相关文档