数据结构课程的设计3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程的设计3

课程设计报告册 2013 — 2014 学年度 第 一 学期 计算机 院/系 信息管理与信息系统 专业 11 年级 1 班 课程名称: 数据结构课程设计 姓 名: XXX 学 号: XXX 1. 程序设计与实现 1.1一元多项式计算 1.需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并储存在内存中,能够完成两个多项式的加减运算并输出结果。 2.概要设计 存储结构:一元多项式的的表示可以在计算机内用链表表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式非零的项,它包含三个域,分别存放该项的系数、指数及指向下一个多项式结点的指针。创建一元多项式链表,对一元多项式的运算会出现各种可能情况进行分析,实现一元多项式的相加、相减操作。 原因:多项式项数不确定,并且指数不一定相连,宜采用链表。 所要设计的模块有: (1).void start()//用户选择界面的功能模块。 (2).void insert(PLOY *head,PLOY *inpt)//查找位置插入新链节程序的功能模块。 (3).PLOY *creat(char ch)//输入并建立多项式的功能模块。此模块按照指数递减的顺序和一定的输入格式输入各个子项的“系数-指数对”,循环输入一个子项建立一个相关结点,当输入结束标志的时候就停止输入。 (4).PLOY *addPLOY(PLOY *head,PLOY *pre)//多项式相加的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相加的运算,存放在F(x)中,并不改变F(x)链表。 (5).PLOY *minusPLOY(PLOY *head,PLOY *pre)//多项式相减的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相减的运算,存放在F(x)中,并不改变F(x)链表。 (6).PLOY *byPLOY(PLOY *head1,PLOY *head2)//多项式相乘的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相乘的运算,存放在F(x)中,并不改变F(x)链表。 (7).void print(PLOY *fun)//输出多项式的功能模块。 (8).主函数main() ,利用switch()实现各函数的调用,系统根据用户输入的数字来调用相应的函数。 3.详细设计 核心算法程序段: (1). 多项式相加 PLOY *addPLOY(PLOY *head,PLOY *pre) { PLOY *inpt; int flag=0; while(flag==0) { if(pre-next==NULL) flag=1;//当现在指向空时跳出循环 else { pre=pre-next; inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节 inpt-coef=pre-coef; inpt-expn=pre-expn; inpt-next=NULL; insert(head,inpt); }//否则把当前g(x)的链节插入到y(x)中 } return head; } (2). 多项式相减 PLOY *minusPLOY(PLOY *head,PLOY *pre) { PLOY *inpt; int flag=0; while(flag==0) { if(pre-next==NULL) flag=1;//当现在指向空时跳出循环 else { pre=pre-next; inpt=(PLOY *)malloc(sizeof(PLOY));//创建新链节 inpt-coef=0-pre-coef; inpt-expn=pre-expn; inpt-next=NULL; insert(head,inpt); }//否则把当前g(x)的链节插入到y(x)中 } return head; } (3).多项式相乘 PLOY *byPLOY(PLOY *head1,PLOY *head2) { PLOY *inpt,*res,*pre; int flag=0; res=(PLOY *)malloc(sizeof(PLOY));//创建链表头 res-next=NULL; head1=head1-next; pre=head2; while(flag==0) { if(pre-next==NULL) { pre=head2;//当现在指向空时跳出循

您可能关注的文档

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档