【数据结构】 实验报告09 将递归代码转换为非递归代码

本文通过实验介绍了如何将阶乘的递归算法转换为非递归算法,首先实现了一个简单的递归版本,然后利用转换规则将其转化为非递归代码,并进一步简化流程。实验在Visual Studio 2017环境下进行,测试了三个不同阶段的算法在计算6!时的正确性,加深了对递归与非递归算法的理解。
摘要由CSDN通过智能技术生成

一、实验目的和要求

目的:将阶乘的递归算法一步一步转换为非递归算法

要求:其它要求同作业-01要求。

二、实验环境

软件环境:visual stdio 2017
硬件环境:①CPU:Intel(R)Core(TM)i7-8565U CPU @1.80Ghz
②内存:8.0GB

三、实验内容

(1)用递归代码实现n!求解。
(2)利用转换规则(不简化) 将代码(1)转换为非递归代码。
(3)简化并梳理代码(2)的流程。
(4)用以上三个独立模块,测试6!的计算结果。

四、实验过程

4.1 任务定义和问题分析

运用转换规则将阶乘递归算法转换为非递归算法,再经过简化规则得到最终版本。

4.2 数据结构的选择和概要设计

涉及到的数据结构:自行设计的链栈,传入参数为2个,一个记录数据,一个记录“地址”
概要设计:第一个函数:阶乘递归算法
第二个函数:仅使用转换规则得到的非递归算法
第三个函数:经化简规则得到的非递归算法

4.3 详细设计

函数1:简单的尾递归算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值