数据结构课程设计猴子吃桃问题及二叉树Word文件下载.doc
《数据结构课程设计猴子吃桃问题及二叉树Word文件下载.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计猴子吃桃问题及二叉树Word文件下载.doc(14页珍藏版)》请在冰豆网上搜索。
课题类型:
设计
课题的目的和意义:
通过课程设计了解c语言中结构体的使用以及利用数据结构设计大型程序
主要参考资料:
黄刘生.数据结构.北京:
经济科学出版社,2005
黄杨铭.数据结构.北京:
科学出版社,2001
严蔚敏.数据结构(C语言版)[M].北京:
清华大学出版社.2008.
苏光奎.数据结构导学.北京:
清华大学出版社,2002
百度文库
指导教师签字:
教研室主任签字:
课程设计评审表
理学院数学0902班学生张翔(28)
设计任务完成情况及指导教师评语
答辩情况
评定成绩
成绩:
指导教师签字:
日期:
教研室主任:
院长签字:
日期:
日期:
问题一、猴子吃桃问题
具体程序及运行结果如下:
#include<
stdio.h>
stdlib.h>
#include<
malloc.h>
#defineNULL0
#defineDay9
//**************************************函数声明***********************************************
voidcreat();
voidprint();
voidarray();
voidEnd();
voiddisplay();
voidfanhui();
voiddisplay()
{system("
cls"
);
printf("
\n********猴子吃桃子的问题**********\n"
\n**1,用数组数据结构的方法实现。
**\n"
\n**2,用链数据结构的方法实现。
**\n"
\n**3,退出程序。
**\n"
\n**************************************\n"
\n请输入您的选择(1,2,3):
"
}
//*****************************************数组**************************************
voidarray()
{
intA[Day+1];
//定义数组
inti;
A[Day]=1;
//第十天的桃子数
for(i=Day;
i>
=1;
i--)
A[i-1]=(A[i]+1)*2;
/*第一天的桃子数是第2天桃子数加1后的2倍*/
printf("
thetotalofpeachesare%d\n"
A[0]);
桃子变化为:
\n"
for(i=0;
i<
=Day;
i++)
第%d天的桃子数为:
%d\n"
i+1,A[i]);
//********************************链表算法*****************************************
typedefstructlinknode
intdata;
structlinknode*next;
//链表指针
}node;
node*head;
//头结点
voidcreat()//创建链表
{node*p,*s;
intpeaches=1;
//第十天时只剩下一个桃子
intday=10;
输入天数"
scanf("
%d"
&
day);
输入第%d天还剩几个桃子:
day);
peaches);
head=(node*)malloc(sizeof(node));
p=head;
while(day>
0)
s=(node*)malloc(sizeof(node));
//分配存属空间
s->
data=peaches;
//用来存放结点数据
p->
next=s;
//把结点插入链表中
p=s;
peaches=(peaches+1)*2;
//第一天的桃子数是第二天桃子数加后的2倍;
day--;
next=NULL;
head=head->
next;
//使头指针指向头结点
free(p);
//释放指针P
voidprint()//输出从这十天每天的桃子数
{node*p;
请确定您输入天数:
while(p&
&
day>
{printf("
第%d天的桃子数:
%d个\n"
day,p->
data);
p=p->
voidEnd()
\n\n\n\n"
printf("
\1谢谢观看\1\n"
\n0772900227\n"
\n张翔\n\n\n\n"
//******************************************主函数*********************************************
voidmain()
{
flg:
display();
inta;
intb;
scanf("
a);
if(a<
1||a>
4)
{
//system("
gotoflg;
else
switch(a)
case1:
system("
\n***********************使用数组的方法:
**********************\n\n\n"
array();
\n\n\n*****************按<
0>
键返回主菜单!
!
按任意数字键退出程序!
******************\n"
b);
if(b==0)
{gotoflg;
else
system("
End();
break;
case2:
system("
\n***********************使用链表的方法:
********************\n\n\n"
creat();
print();
\n\n\n*****************任意键返回主菜单!
按'
0'
退出程序!
*************************\n"
break;
case3:
End();
exit(0);
}
intdigui();
//*****************************************数组**********************************