- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
猴子吃桃问题数据结构课程设计
设计题目 ?猴子吃桃子问题
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一
个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
二、运行环境(软、硬件环境)
VC++6.0 PC电脑一台
算法的需求分析
1)?采用数组数据结构实现上述求解
2)?采用链数据结构实现上述求解
3)?采用递归实现上述求解
4)?如果采用4种方法者,适当加分
//用户界面
int Desk(int n)
{
printf(**************************************************\n);
printf(| 欢迎进入猴子吃桃子系统 |\n);
printf(| 1-数组法 2-链表法 3-递归法 4-二叉树法 5-退出 |\n);
printf(***************************************************\n);
printf(请输入要选择的方法: );
scanf(%d,n);
getchar();
system(cls); //刷新屏幕
while(n1 || n5)
{
printf(***输入错误 ! 请重新输入***\n);
scanf(%d,n);
}
return n;
}
四、算法概要设计
//采用链数据结构 (栈) 实现上述求解
typedef struct
{
int *top;
int *base;
}stack;
//初始化一个栈
stack Init(stack *s)
{
s-base=(int *)malloc(STACK_SIZE*sizeof(int));
if(s-base == NULL)
{
printf(Init failed !\n);
exit(-1);
}
s-top = s-base;
return *s;
}
//二叉树
创建一个大小为DAYS(由用给出)的二叉树,二叉树的左孩子节点存放当天的桃子数,右节点存放数字1,即为多吃的一个桃子。
typedef struct TNode
{
int data;
struct TNode *lchild;
struct TNode *rchild;
}tree;
//创建一个二叉树
tree CreatTree(tree *T) //T 为指针类型
{
int n=0,i=0;
tree *p,*pr,*T1;
T=(tree *)malloc(sizeof(TNode));
T1=T;
T-data=1; //根节点内的数据为第DAYS天的桃子数
for(i=1; iDAYS; i++)
{
p=(tree *)malloc(sizeof(TNode));
pr=(tree *)malloc(sizeof(TNode));
pr-lchild=NULL;
pr-rchild=NULL;
p-data=0;
pr-data=1;
T1-lchild=p;
T1-rchild=pr;
T1=p;
}
T1-lchild=NULL;
T1-rchild=NULL;
return *T; //返回T的地址
}
//算法框架图
N
Y N
Y
算法详细设计
#include stdio.h
#include stdlib.h
#include peach.h
//函数声明
int Desk(int n);
void peach_1(void);
stack Init(stack *s);
void Push(stack *s,int num);
void Pop(stack *s,int num);
void peach_2(stack *s);
void peach_3(int n,int i);
tree CreatTree(tree *T);
void cal
您可能关注的文档
- 浙江省温州市十校联合体2015届高三上学期期初联考语文试题.doc
- 海员心理特点及疏导方式.doc
- 浙科ERP模拟实验指导书(给学生).doc
- 海南省海洋经济发展规划2009.docx
- 海岸动力学-模拟卷(海事题库).doc
- 海泡石性质特性.doc
- 海外综艺节目的思考.doc
- 海测资料1.doc
- 海洋与湖沼投稿基本格式模板(2013-8-14).doc
- 海淀+2012.doc
- 人教版八年级上册数学精品教学课件 第十三章 三角形 章末整合练.ppt
- 人教版八年级上册数学精品教学课件 第十五章 轴对称 15.3 等腰三角形-15.3.1 等腰三角形-第2课时 等腰三角形的判定 (4).ppt
- 人教版八年级上册数学精品教学课件 极速提分法 第17招 整体思想在解题中的七种技巧.ppt
- 人教版八年级上册数学精品教学课件 第十五章 分式 专项突破9 分式方程的解在求字母的值或取值范围中的常用技巧.ppt
- 人教版八年级上册数学精品教学课件 第十八章 分式 18.3 分式的加法与减法-第1课时 分式的加减.ppt
- 人教版八年级上册数学精品教学课件 第十四章 全等三角形 14.1 全等三角形及其性质 (4).ppt
- 七年级作文成长的经历(11篇).docx
- 法律责任豁免声明及工作证明函(6篇).docx
- 叙事作文那是一次难忘的尝试750字通用14篇.docx
- 沙滩里的秘密500字(14篇).docx
文档评论(0)