猴子吃桃子问题 大数据结构课程设计

猴子吃桃子问题 大数据结构课程设计

ID:31368598

大小:79.00 KB

页数:16页

时间:2019-01-09

猴子吃桃子问题 大数据结构课程设计_第1页
猴子吃桃子问题 大数据结构课程设计_第2页
猴子吃桃子问题 大数据结构课程设计_第3页
猴子吃桃子问题 大数据结构课程设计_第4页
猴子吃桃子问题 大数据结构课程设计_第5页
资源描述:

《猴子吃桃子问题 大数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文案目录1、需求分析12、概要设计12.1.用数组数据结构实现上述求解12.2.用链数据结构实现上述求解12.3用栈数据结构实现求解12.4用递归实现上述求解23、运行环境23.1硬件环境23.2软件环境24、详细设计24.1系统流程图24.2用数组数据结构实现上述求解34.3用链数据结构实现上述求解44.4用栈数据结构实现求解54.5用递归实现上述求解65、调试分析76、运行结果7课程设计总结8参考文献9附录:9精彩文档实用标准文案1、需求分析1、猴子吃桃子问题有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,

2、到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求:1) 采用数组数据结构实现上述求解2) 采用链数据结构实现上述求解3) 采用栈实现上述求解4) 采用递归实现上述求解2、概要设计2.1.用数组数据结构实现上述求解在taozi函数中定义一个一维数组,分别存储每天的桃子个数,根据题目的内容找出各个数之间的关系,用数组元素表示出来,根据用户输入要计算哪一天的桃子,用for循环控制结束。在main函数中让用户输入要计算的哪一天,调用taozi函数,以便用户可查出任意一天的桃子个数,用switch语句判断用户

3、要执行的功能,然后用while循环控制,直到用户输入0为止。2.2.用链数据结构实现上述求解先写出预定义常量和类型,写出结点的类型定义,创建结点,初始化链表,定义变量并初始化,找出结点与其后继结点之间的联系,然后在主函数中控制。2.3用栈数据结构实现求解本部分包括预定义常量和类型,顺序栈的定义,InitStack函数,Push函数,和main函数,在InitStack函数构造一个空栈,在Push函数中调用该函数,并在其中编写控制栈顶指针和栈底指针移动的语句,找出指针所指向的数据之间的关系,在main函数中编写控制循环结束的语句,最后再

4、用main函数去调用Push函数。精彩文档实用标准文案2.4用递归实现上述求解这种方法跟上述几种不同,在函数的执行函数的过程中,需多次进行自我调用,递归函数的运行过程类似与多个函数的嵌套调用,只是调用函数和被调用函数是同一个函数,从主函数开始调用,一次更深一层,退出时一步一步返回到上一层,所以不需写控制循环语句,不需要写控制循环语句,比上几种方法简单点。3、运行环境3.1硬件环境PC3.2软件环境(1)WindowsXP(2)MicrosoftVisualC++6.04、详细设计4.1系统流程图猴子吃桃问题的实现用数组结构实现用链数据

5、结构实现用栈数据结构实现用递归方法实现精彩文档实用标准文案4.2用数组数据结构实现上述求解//计算桃子的个数voidtaozi(intn,intm){intday[10];//初始化变量,用数组元素分别存储每天的桃子个数inti;//控制循环执行的次数day[0]=n;//最后一天的桃子个数for(i=0;i<10-m;i++)day[i+1]=2*(day[i]+1);//相邻元素之间的关系printf("第%d天的桃子为:%d",m,day[10-m]);}voidmain(){intm;//用户要计算的是第几天printf(

6、"请输入要求第几天剩下的桃子:");scanf("%d",&m);taozi(1,m);//调用while(1){intj;//循环控制条件printf("请输入j的值0:退出1:继续:");scanf("%d",&j);switch(j){//当j=1时,用户可以输入多次想要的数值case1:printf("请输入要求第几天剩下的桃子:");scanf("%d",&m);taozi(1,m);精彩文档实用标准文案break;//跳出//当j=0时,跳出switch结构case0:return;break;//当用户输入除

7、0和1以外的数值时,会让你重新输入,直到输入正确为止default:printf("输入有误请重新输入!");}}}4.3用链数据结构实现上述求解//预定义常量和类型#defineNULL0//单链表的存储结构typedefstructLNode{intdata;//数据域structLNode*next;//指针域}LNode;LNode*L;LNode*p,*s;//计算桃子的个数intCreateList_L(inte,intm)//e是第十天的桃子的个数,m是将要计算的是第几天{inti;L=(LNode*)malloc(si

8、zeof(LNode));//生成新结点p=(LNode*)malloc(sizeof(LNode));L->next=NULL;//创建一个带头结点的单链表精彩文档实用标准文案L->next=p;//插入到表头L->n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。