- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计-猴子吃桃
湖 南 工 学 院
数据结构课程设计
题 目: 数据结构实现—猴子吃桃
系 别:
专 业:
年 级:
班 级:
学 生:
学 号:
目 录
论 文 提 要 ……………………………………… 3
需 求 分 析 ……………………………………… 4
详 细 设 计 ……………………………………… 5
数组结构 …………………………………………… 5
递归 …………………………………………………… 7
链表 …………………………………………………… 9
调 试 结 果 ……………………………………… 11
调试分析 ……………………………………… 12
论 文 提 要
初步分析说明数据结构和抽象数类型等基本概念;从抽象数据类型的角度,通过数学应用的分析,把问题进行分析,整理,面后通过观察选择适当的逻辑结构、存储结构入及其相应的算法来解决问题,数据结构课程主要是为了培养我们对数据的抽象能力和对算法在时间和空间和复杂度上进行优化,猴子吃桃这一数学方面的例题是很典型的一道程序例题,在这里主要以C语言作为数据结构和描述语言,分析并采用数组数据结构,递归,链数据结构实现上述问题。
需 求 分 析
实现课题——猴子吃桃
摘 要:猴子吃桃这一典型的数学课题,其主要实现的过程是将其数学课题公式化,用一些简单的数据定义、初使化、通过一系列的条件判断和循环用来实现学数公式的计算机化。
通过C语言基础分析和数据结构初步了解,我们使用C语言,利用C和数据结构的结合使用,让我们在短时间内建立起对数据结构的进一步认识。然后,形成正确的对算法和优有个的理解观念。
关键词:C语言的基本了解,数据结构的基本了解, 数据中数组的使用,递归调用,用C语言实现数据链表
题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少?
要求: 采用数组,递归,链数据结构实现上述求解
详 细 设 计
1. 数组结构
把猴子吃桃的天数倒过来看的话,以天数作为数组的下标i,剩下桃子的个数a[i]的递推公式为a[i]=(a[i-1]+1)*2。a[i]实际代表了倒数第i天剩下的桃子数。数组结构算法的流程图如图3-1:
程序如下:
#includestdio.h
void main()
{
int i,tao[10];
tao[9]=1;//tao[9]代表第10天剩的桃子数
for(i=8;i=0;i--){
tao[i]=2*(tao[i+1]+1);
}
printf(共摘了%d个桃子!\n,tao[0]);
}2.链结构
建立一个链表,根据每天桃子数与后一天桃子数的关系n=2*n+2,依次将每天的桃子数存进链表中,最后输出第一天的桃子数。首先是建立一个空链表,产生一个头结点,且将头结点的地址赋给L。然后把每天的桃子数从链表的第一个结点插入链表。最后第一天的桃子数被最后一个插入链表,成为链表中第一个值,将其赋给e,最后只要输出e即得到第一天的桃子数。
程序如下:
#includestdio.h
#includestdlib.h
#define TRUE 1
#define FALSE 0
#define NULL 0
typedef int ElementType;
typedef struct node
{
ElementType data;
struct node *next;
}StackNode,*LinkStack;
void InitStack(LinkStack top)
{top-next=NULL;}
int IsEmpty(LinkStack top)
{ if(top-next==NULL) return TRUE;
else return FALSE;
}
int Push(LinkStack top,ElementType element)
{
StackNode *temp;
temp=(StackNode *)malloc(sizeof(StackNode));
if(!temp) return FALSE;
else {
temp-data=element;
temp-next=top-next;
top-next=temp; return TRUE;}
}
int Pop(LinkStack top,ElementType *element)
{if(IsEmpty(top)) return FALSE;
else { StackNode *temp
您可能关注的文档
- 教学常规测真题(常用)(不下可惜).doc
- 2011年05月21日中尺度分析.ppt
- 计算机一级套题电脑选择题.doc
- 泰安市阳光建筑公司承包合同.doc
- 我的2010(孙芳芳).doc
- 综合柜员岗位责任制.doc
- 0-3岁教育的发展趋势.doc
- 水果屋说课稿.doc
- 很有用的模板,不下可惜了!!!.ppt
- 金典采购管理资料,不下载太可惜!.ppt
- 市人大主任、区委社会工作部关于2025年民主生活会“四个带头”个人对照检视材料(含反面典型案例剖析)2篇文.docx
- 市直单位领导班子2025年民主生活会“四个带头”对照检视材料与交通运输局副局长民主生活会四个方面自我批评意见32条(两篇文).docx
- 区委社会工作部2025年民主生活会“四个带头”对照查摆剖析材料(含反面典型案例剖析)与县委班子“四个带头”对照检查发言材料(含意识形态)2篇文.docx
- 2025年民主生活会、组织生活会相互批评意见建议【65条】与国有企业普通党员围绕“四个方面”组织生活会个人对照检查发言材料2篇例文.docx
- 党委副书记2025年民主生活会“四个带头”个人对照检视发言材料(含反面典型案例剖析)与市投资促进局党支部书记“四个带头”个人对照检查发言材料【含意识形态】2篇文.docx
- 2025年国有企业党委书记民主生活会四个方面自我批评意见40条与普通党员组织生会五个方面自我批评意见25条.docx
- 市民政局副书记、政数局副书记2025年民主生活会围绕“四个带头七个方面”个人对照检查发言材料【含典型事例剖析】2篇文.docx
- 生产一线党员2025年组织生活会围绕“五个方面”个人对照检查发言材料与宣传委员“四个带头”对照检查材料(含意识形态)2篇例文.docx
- 离退休党工委副书记、市工信局副书记2025年民主生活会围绕“四个带头七个方面”个人对照检查发言材料【含典型事例剖析】2篇文.docx
- 农业农村局2025年民主生活会、组织生活会意见建议38条与社会工作部民主生活会六个方面自我批评意见30条2篇文.docx
文档评论(0)