欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    杨辉三角实验报告.docx

    • 资源ID:9552371       资源大小:100.77KB        全文页数:11页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    杨辉三角实验报告.docx

    1、杨辉三角实验报告 -杨辉三角专 业:自动化 班 级:自动化05姓 名:陈绍清学 号:10054112指导教师:蔡忠闵 刘美兰 2011.12.20实验目的:逐行打印二项展开式 (a + b)i 的系数杨辉三角形 (Pascals triangle) 1 1 i = 1 1 2 1 2 1 3 3 1 3 1 4 6 4 1 4 1 5 10 10 5 1 5 1 6 15 20 15 6 1 6问题描述:编写程序,根据输入的行数,屏幕显示杨辉三角。基本要求:(1) 行数不大于20行。(2) 基于队列的操作来实现杨辉三角的不断生成过程。(注:不要用其它的公式计算的方法或者二维数组来实现) (3)

    2、基于数组实现队列的物理数据结构需求分析: 1、输入形式:输入一个整数n ,0=n=20 2、输出形式:打印出来前(n+1)行的杨辉三角数列 3、功能实现:输出前20层的杨辉三角序列实验内容:1. 采用类c语言定义相关的数据类型ADT Queue 数据对象:D ai | ai ElemSet, i=1,2,.,n, n0 数据关系:R1 | ai-1, ai D, i=2,.,n 约定an端为对列尾,a1端为对列头 基本操作: InitQueue (&Q) /构造一个空对列 DestroyQueue (& Q) /销毁对列 ClearQueue (& Q) /将S清为空对列 QueueEmpty

    3、(Q) /判断是否为空对列,是则返回True QueueLength(Q) /返回对列的长度 GetHead (Q, &e) / 返回队头元素 EnQueue (& Q, e) /插入元素e为新的队尾元素 DeQueue (& Q, &e) / 删除队头元素,并用e返回QueueTraverse(Q, visit() /对每个元素都调用visit函数,如调用失败,则操作失效 2. 各模块的流程图及伪码算法Status InitQueue (SqQueue &Q ) Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType); / 分配队列的存储空间

    4、;if ( !Q.base ) exit( OVERFLOW ) ; Q.front = Q.rear = 0; / 队头、尾指针清0 return OK;Status EnQueue (SqQueue &Q, QElemType e ) if ( Q.rear + 1) % MAXQSIZE ) = Q. front ) return( ERROR ) ; Q.base Q.rear = e;Q.rear = ( Q.rear + 1) % MAXQSIZE ); return OK; / EnQueue ;typedef struct Qnode QElemType data; struc

    5、t Qnode *next; Qnode; typedef struct Qnode *front; Qnode *rear; LinkQueue;void YangHui ( int n ) / n为需要输出的杨辉三角形的行数 SqQueue q; int s=0, t; InitQueue(q); EnQueue (q, 1); EnQueue (q, 1);for( int i=1; i=n; i+ ) / 逐行计算 printf(“n”); EnQueue (q, 0);for ( int j=1; j=i+2; j+ ) / 根据上行系数求下行系数 DeQueue (q, t); E

    6、nQueue (q, s+t); s = t; if ( j != i+2 ) printf(“%3d”, s); / 不输出每行结尾的0 3.算法思路: 概要设计:既然要用到队列来打印杨辉三角,那么肯定会利用到队列FILO的性质(First In Lase Out),由于是要打印一个数列,那么肯定要利用已经进队的元素在其出队之前完成杨辉三角的递归性-即利用要出队的元素来不断地构造新的进队的元素,即在第N行出队的同时,我们来构造杨辉三角的第N+1行,从而实现打印杨辉三角的目的。详细设计: 算法思想已经在概要设计中提到了,现在通过基于队列基本操作的函数以及程序的模块化思想来实现杨辉三角的打印输出

    7、问题。算法函数描述: void EnterQueue(Queue &Q,int x)/入队 int DeleteQueue(Queue &Q, int &x) /出队 void GetHead(Queue &Q,int &x) /得到队首元素 void YangHui (int n) /打印杨辉三角数表通过在void YangHuiTriangle(int n)中反复的调用void GetHead(Queue &Q,int &x)、int DeleteQueue(Queue &Q, int &x)、void EnterQueue(Queue &Q,int x)来实现打印.调试分析: 调试了很久

    8、很久啊,小的错误总是那么的多,主要遇到的问题有:typedef用法不很清楚,刚开始用指针实现的时候出现了问题;没有在基本操作中采用“传引用”的方式传参,导致很长的时间内,根本就没有相应的输出;刚开始在每一行中总是没有出现最后一个1,导致问题的结果是没有相应的入队操作导致后面的杨辉三角很是紊乱!实验结果调试: 设 计 总 结我的这次数据结构课程设计的题目是:杨辉三角,通过对该题目的设计,我加深了对数据结构及存储结构的理解,进一步地理解和掌握了课本中所学的各种数据结构,尤其是对单循环链表上基本运算的实现,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。在此过程我深深地意识到自己知识的

    9、严重不足!不断地充实自己才是目前的当务之急!三周的课程设计很短暂,但其间的内容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各课知识融会,组织起来进行学习,总而言之这三周中我学到很多,收益匪浅同时一定程度上提高了自己程序设计和阅读程序的能力。本次课程设计提高了我们的专业知识,使自己所学的内容运用到实际中来,也增强了实际操作能力,为以后的工作学习提供了一个良好的铺垫。通过本次课程设计的实践学习,我认识到了学好计算机要重视实践操作,所以在以后的学习过程中,我会更加注重实践操作,使自己更好地学好计算机。参考文献1 严蔚敏

    10、,吴伟民.数据结构(C语言版).清华大学出版社.2 严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社.3 谭浩强.c语言程序设计. 清华大学出版社. 4.李春葆编著 数据结构教程(上机实验指导) 清华大学出版社5.叶核亚主编 数据结构(C+版) 机械工业出版社致 谢课程设计完成之际,除了感到一种轻松以外,马上想到的就是对老师以及在课程设计过程中帮助我的同学们,因为他们的指导和鞭策,才使我下定决心,集中精力投入到课程设计的建设。 首先感谢我的指导老师刘美兰老师,他在我的课程设计过程中提出了指导性的方案和架构,比如让我把密码设计成自动和手动两种方式,使我在不熟悉的领域中仍能迅速掌握新的技术

    11、。 感谢我的数据结构老师蔡忠闵老师在以往的基础课学习中为我打下良好的基础,这是我这次课程设计能够顺利完成的前提。 我的同学在这次课设中也给予了我一些好的建议!在此,也谢谢他们!附录一:C程序:#define MAXSIZE 50#includetypedef int datatype;typedef struct int dataMAXSIZE; int front; int rear;SeqQueue;SeqQueue*InitQueue()SeqQueue *q; q=(SeqQueue* )malloc(sizeof(SeqQueue); q-front=q-rear=0; return

    12、 q;void EnQueue(SeqQueue*q,datatype x) if(q-rear+1)%MAXSIZE=q-front) printf(ERROR);exit(1); q-dataq-rear=x; q-rear=(q-rear+1)%MAXSIZE; datatype DeQueue (SeqQueue *q) datatype x; if(q-front=q-rear) printf(nERROR);exit(1); x=q-dataq-front; q-front=(q-front+1)%MAXSIZE; return x; int QueueEmpty(SeqQueue

    13、*q) return(q-front=q-rear); int GetHead(SeqQueue*q) int e; if(q-front=q-rear) e=0; else e=q-dataq-front; return e;void YangHui (int n) SeqQueue *q; int i,j,s,t; for(i=1;i=n;i+) printf( ); printf( 1n); q=InitQueue(); EnQueue(q,0); EnQueue(q,1);EnQueue(q,1); for(j=1;jn;j+) for(i=1;in-j;i+) printf( ); EnQueue(q,0); do s=DeQueue(q); t=GetHead(q); if(t)printf(%5d,t); else printf(n); EnQueue(q,s+t); while(t!=0); DeQueue(q); printf(%3d,DeQueue(q); while(!QueueEmpty(q) t=DeQueue(q); printf(%5d,t); main()int n;scanf(%d,&n);printf(%d”,nn);YangHui (n);


    注意事项

    本文(杨辉三角实验报告.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开