当前位置:文档之家› 数据结构实验:递归程序设计-精简

数据结构实验:递归程序设计-精简

实验名称:实验六递归程序设计(实验报告)
一.实验目的:
1. 理解递归程序设计基本方法
2.理解递归的三大要素
二.实验内容:
1. 根据整数乘法运算的特点,给出整数乘法运算的递归实现
2、编写一个递归实现整数之间乘法运算的函数,并进行测试,验证设计的正确性。

二、实验原理:
1、什么是递归:
在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归。

若调用自身,称之为直接递归。

若过程或函数p调用过程或函数q,而q又调用p,称之为间接递归。

如果一个递归过程或递归函数中递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。

2、以下三种情况使用递归:
2.1、问题的定义是递归的。

2.2、数据结构是递归的。

2.3、问题求解的过程是递归的。

3、递归算法的设计方法:
先将整个问题划分为若干个子问题,通过分别求解子问题,最后获得整个问题的解。

而这些子问题具有与原问题相同的求解方法,于是可以再将它们划分成若干个子问题,分别求解,如此反复进行,直到不能再划分成子问题,或已经可以求解为止。

4.递归算法的执行过程:
4.1递归算法的执行过程是不断地自调用,直到到达递归出口才结束自调用过程;
4.2到达递归出口后,递归算法开始按最后调用的过程最先返回的次序返回;
4.3返回到最外层的调用语句时递归算法执行过程结束。

2.实验流程:
1、编辑主函数并初始化优先级队列;
2、通过函数调用完成程序设计;
3、运行编译函数,查看结果
四.程序代码:
1.主程序
#include "stdio.h"
mult(int x,int y)
{
if (y==1) return x;
else
return x+mult(x,y-1);
}
void main()
{
int j,k,m;
printf("请输入两个乘数:\n");
scanf("%d %d",&j,&k);
printf("结果为:\n");
m=mult(j,k);
printf("%d",m);
printf("\n");
}
}
2.实验结果:
结果分析:由实验结果可知,成功的完成了对递归的操作,可见能实现乘数的功能实现,实验基本成功。

五.心得体会:
在本次试验中,主要是熟悉对递归操作,虽然这些操作的基本原理都比较熟悉,但是实际上机时还是出现了不少问题,但是有与编程能力太差,还有时间问题,所以实验不是很成功,对递归概念还是有些不清楚,所以还要再接再厉,争取有更多的收获。

相关主题