ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:84.55KB ,
资源ID:23125985      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23125985.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计猴子吃桃问题及二叉树.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计猴子吃桃问题及二叉树.docx

1、数据结构课程设计猴子吃桃问题及二叉树课 程 设 计 任 务 书 理 学院 数学0902 班 学生 (28) 课程设计课题:1 猴子吃桃问题: 有一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半再多吃一个,到了第10天就剩下一个桃子,用多种方法实现求出原来这群猴子共摘了多少桃子。要求:1)采用数组数据结构实现上述求解; 2)采用链式数据结构。2.实现二叉排序树:要求:用顺序表和二叉链表作为数据结构1)以回车(n)为输入结束标志,输入数列L,生成一棵二叉排序树T;2)对二叉排序树进行中序遍历,输出结果;3)输入元素m,查找二叉排序树T,若存在包含m的结点,则删除该结点,并做中序遍历。否则显示信息“

2、无m这个结点”。 一、课程设计工作日自 2012 年 2 月 21 日至 2012 年 3 月 2 日二、同组学生: 无 三、课程设计任务要求(包括课题来源、类型、目的和意义、基本要求、完成时间、主要参考资料等):课题来源:教师提供课题类型:设计课题的目的和意义:通过课程设计了解c语言中结构体的使用以及利用数据结构设计大型程序主要参考资料:黄刘生.数据结构.北京:经济科学出版社,2005黄杨铭.数据结构.北京:科学出版社,2001严蔚敏. 数据结构(C语言版) M. 北京:清华大学出版社. 2008.苏光奎.数据结构导学.北京:清华大学出版社,2002XX文库指导教师签字: 教研室主任签字:

3、课 程 设 计 评 审 表 理 学院 数学0902 班 学生 (28) 设计任务完成情况及指导教师评语答辩情况评定成绩成绩: 指导教师签字: 日期: 教研室主任: 院长签字: 日期: 日期: 问题一、猴子吃桃问题 具体程序及运行结果如下:#include #include#include #define NULL 0#define Day 9/*函数声明*void creat();void print();void array();void End();void display();void fanhui();void display() system(cls);printf(n * 猴子吃桃

4、子的问题 *n);printf(n * 1,用数组数据结构的方法实现。 *n);printf(n * 2,用链数据结构的方法实现。 *n);printf(n * 3,退出程序。 *n);printf(n *n);printf(n 请输入您的选择(1,2,3):);/*数组*void array() int ADay+1;/定义数组 int i; ADay=1;/第十天的桃子数 for(i=Day;i=1;i-) Ai-1=(Ai+1)*2; /*第一天的桃子数是第2天桃子数加1后的2倍*/ printf(the total of peaches are %dn,A0); printf(桃子变化

5、为:n); for(i=0;i0)s=(node*)malloc(sizeof(node);/分配存属空间s-data=peaches;/用来存放结点数据p-next=s; /把结点插入链表中p=s;peaches=(peaches+1)*2;/第一天的桃子数是第二天桃子数加后的2倍;day-;p-next=NULL;p=head;head=head-next;/使头指针指向头结点free(p); /释放指针Pvoid print()/输出从这十天每天的桃子数 node *p;p=head;int day=10;printf(请确定您输入天数:);scanf(%d,&day);while(p&

6、day0) printf(第%d天的桃子数:%d个n,day,p-data);p=p-next;day-;void End()printf(nnnn); printf( 1 谢谢观看 1n);printf( n 0772900227n); printf( n nnnn);/*主函数*void main() flg:display();int a;int b; scanf(%d,&a);if(a4) /system(cls); goto flg;else switch(a) case 1: system(cls); printf(n *使用数组的方法:*nnn); array(); printf

7、(nnn*按键返回主菜单!按任意数字键退出程序!*n); scanf(%d,&b); if(b=0) goto flg; else system(cls); End(); break; case 2: system(cls); printf(n *使用链表的方法:*nnn); creat(); print(); printf(nnn*任意键返回主菜单!按0退出程序!*n); scanf(%d,&b); if(b=0) goto flg; else system(cls); End(); break; case 3: system(cls); End(); exit(0); #include #

8、include#include #define NULL 0#define Day 9/*函数声明*void creat();void print();void array();int digui();void End();void display();void fanhui();void display() system(cls);printf(n * 猴子吃桃子的问题 *n);printf(n * 1,用数组数据结构的方法实现。 *n);printf(n * 2,用链数据结构的方法实现。 *n);printf(n * 3,退出程序。 *n);printf(n *n);printf(n 请输

9、入您的选择(1,2,3):);/*数组*void array() int ADay+1;/定义数组 int i; ADay=1;/第十天的桃子数 for(i=Day;i=1;i-) Ai-1=(Ai+1)*2; /*第一天的桃子数是第2天桃子数加1后的2倍*/ printf(the total of peaches are %dn,A0); printf(桃子变化为:n); for(i=0;i0)s=(node*)malloc(sizeof(node);/分配存属空间s-data=peaches;/用来存放结点数据p-next=s; /把结点插入链表中p=s;peaches=(peaches+

10、1)*2;/第一天的桃子数是第二天桃子数加后的2倍;day-;p-next=NULL;p=head;head=head-next;/使头指针指向头结点free(p); /释放指针Pvoid print()/输出从这十天每天的桃子数 node *p;p=head;int day=10;printf(请确定您输入天数:);scanf(%d,&day);while(p&day0) printf(第%d天的桃子数:%d个n,day,p-data);p=p-next;day-;void End()printf(nnnn); printf( 1 谢谢观看 1n);printf( n 0772900227n

11、); printf( n nnnn);/*主函数*void main() flg:display();int a;int b; scanf(%d,&a);if(a4) /system(cls); goto flg;else switch(a) case 1: system(cls); printf(n *使用数组的方法:*nnn); array(); printf(nnn*按键返回主菜单!按任意数字键退出程序!*n); scanf(%d,&b); if(b=0) goto flg; else system(cls); End(); break; case 2: system(cls); pri

12、ntf(n *使用链表的方法:*nnn); creat(); print(); printf(nnn*任意键返回主菜单!按0退出程序!*n); scanf(%d,&b); if(b=0) goto flg; else system(cls); End(); break; case 3: system(cls); End(); exit(0); 按1:链式结构:按2:输入10天剩余一个桃子,运行的结果为:2.实现二叉排序树的程序如下:#include using namespace std;class nodepublic: node(int i):data(i),left(NULL),righ

13、t(NULL) void inorder(node *&root) /中序遍历,符合升序输出 if(root!=NULL) inorder(root-left); coutdataright); void insert(node *&ptr,int item) /在查找树中插入元素 if(ptr=NULL) ptr=new node(item); else if(itemdata) insert(ptr-left,item); else insert(ptr-right,item); node *find(node *&ptr,int item) /在查找树中查找元素,找到返回所在结点指针,找

14、不到返回空指针。 if(ptr=NULL) return NULL; if(ptr-data=item) return ptr; else if(itemdata) find(ptr-left,item); else find(ptr-right,item); node *&findy(node *&ptr,int item) /在查找树中查找肯定存在的元素,并返回其引用 if(ptr-data=item) return ptr; else if(itemdata) findy(ptr-left,item); else findy(ptr-right,item); node* rl()retu

15、rn left; node* rr()return right; void dele(node *&ptr) /删除值为item所在结点 if(ptr-rl()=NULL&ptr-rr()=NULL) ptr=NULL; else if(ptr-rr()=NULL) ptr=ptr-rl(); else ptr=ptr-rr(); private: int data; node *left; /左孩子结点 node *right; /右孩子结点;int main() int t,i=0,j; coutt; cout输入tj; node *x=new node(j); for(;ij; x-insert(x,j); coutinorder(x); /作中序遍历 coutn输入操作(当输入-1时程序结束):j; while(j!=-1) node *t=x-find(x,j); /定位结点 if(t!=NULL) node *&y=x-findy(x,j); x-dele(y); coutinorder(x); else cout无j这个节点; coutn输入操作(当输入-1时程序结束):j; return 0;运行结果如下:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1