递归调用的理解

本文通过分析《数据结构高分笔记》第一章中的思考题,探讨如何理解和应用递归调用来解决实际问题。通过对递归调用的深度解析,帮助读者深入理解递归的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于递归调用的理解问题


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



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


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


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


设计的算法如下:
————————————————————————————————————
void reversePrint(LNode *l)                                            //逆序输出链表
{
if (l->next!= NULL){
reversePrint(l->next);
}
cout << l->data<<" -- ";
}
————————————————————————————————————
            我们假设从首元结点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值