递归调用的理解

关于递归调用的理解问题


前几天做题的时候,发现《数据结构高分笔记》第一章有这样一个思考题,对理解递归调用帮助很大,题目如下:



题目:逆序输出单链表的数据域,要求 指针l指向链表首元结点,且只用l一个指针


(一)分析:在单链表的情况下,要逆序输出结点数据只用一个指针,除了用递归调用,好象没有别的方法了。关键在于,如何设计递归调用?


            递归调用属于分治法的一种思想,一个包含直接或者间接调用自身函数的语句的函数被称为递归函数,但不是所有的调用自身都是递归,必须满足以下条件:
          (1)在每一次调用自身时,必须是(在某种意义上)更接近于解;
          (2)必须有一个终止 处理或者计算 的准则;


设计的算法如下:
————————————————————————————————————
void reversePrint(LNode *l)                                            //逆序输出链表
{
if (l->next!= NULL){
reversePrint(l->next);
}
cout << l->data<<" -- ";
}
——————————
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值