- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本科毕业设计多项式的设计报告数据结构课程设计
目 录
1.多项式的设计报告…….………………………2
a.概要设计 …….………………………2
b.详细设计 …….………………………3
c.调试分析 …….………………………8
数据结果 …….………………………8
时间复杂度分析 ……………………10
问题和解决方法 ……………………10
源程序代码展示…………………………10
2.二叉树的设计报告…….………………………18
a.概要设计 …….………………………18
b.详细设计 …….………………………19
c.调试分析 …….………………………21
数据结果 …….………………………21
时间复杂度分析 ………………………22
问题和解决方法 ………………………23
源程序代码展示…………………………23
3.课程设计总结…………………………………26
多项式的设计报告
概要设计
1. 将该存储结构定义为链式结构的线性表存储结构的定义struct Node
{float coef;//结点类型
int exp;};
typedef Node polynomial;
struct LNode
{polynomial data;//链表类型LNode *next;};
typedef LNode* Link;
2.创建函数流程图
3.主程序流程图:
4.多项式加法的算法分析
将链表pa,pb分别复制到新建链表p1,p2中,再新建链表pc,然后分别依次对p1,p2链表中结点中的指数进行比较,将指数小的结点的值先赋值给pc中的结点,两个指数相同时,将系数相加后一起赋值给pc中的结点,最后将p1或者p2中多余的结点直接赋值给pc链表,pc链表就是通过加法后的多项式
5.多项式减法的算法分析
新建链表pt,将pb中的结点值赋给pt,然后将pt中所有结点的系数乘上(-1)后,再将pt和pa相加就得到相减后的多项式。
6.多项式乘法的算法分析
同样将链表pa,pb中的结点赋值给p1,p2,然后依次将p1中的每个结点的值分别与p2中每个结点的值相乘后赋值给pc,就得到相乘后的多项式。
详细设计
创建多项式的源程序
void CreateLink(Link L,int n)
{if(L!=NULL) //首先判断是已经存在多项式,如果存在则销毁
{DestroyLink(L);
}
Link p,newp;
L=new LNode;L-next=NULL;//分配结点空间,new相当于malloc函数
(L-data).exp=-1; //创建头结点
p=L;
for(int i=1;i=n;i++)
{
newp=new LNode;
cout请输入第i项的系数和指数:endl;
cout系数:;
cin(newp-data).coef;
cout指数:;
cin(newp-data).exp;
if(newp-data.exp0)
{cout您输入有误,指数不允许为负值!endl;
delete newp;i--;continue;}
newp-next=NULL;p=L;
if(newp-data.coef==0)
{cout系数为零,重新输入!endl;
delete newp;i--;continue;
}
while((p-next!=NULL)((p-next-data).exp(newp-data).exp))
{p=p-next;
}
if(!JudgeIfExpSame( L, newp))
{newp-next=p-next;
p-next=newp;
}else
{
cout输入的该项指数与多项式中已存在的某项相同,请重新创建一个正确的多项式endl;
delete newp;DestroyLink(L);
CreateLink(L,n);
break;
}
}
}
二.多项式相加模块的源程序
void PolyAdd(Link pc,Link pa,Link pb)
{
Link p1,p2,p,pd;
CopyLink(p1,pa);CopyLink(p2,pb); //将链表pa,pb分别复制给p1,p2
pc=new LNode;
pc-next=NULL;p=pc; //创建新链
您可能关注的文档
最近下载
- 角色模型制作综合规范.pdf VIP
- 汛期居民转移安置点疫情防控工作方案.doc VIP
- 最新BG201使用说明书20121024.pdf VIP
- 车辆维修定点服务项目投标方案(技术标).pdf
- 政府招聘人员协议书.docx VIP
- 2022电网生产调度系统检修工程预算编制与计算方法.docx VIP
- 吸入用一氧化氮-药品临床应用解读.pptx VIP
- Unit 1 Helping at home Part A 第1课时课件2025-2026学年度人教PEP英语四年级上册.pptx VIP
- 《GB3095-2012 环境空气质量标准》.pdf VIP
- GB21148-2020 足部防护 安全鞋.pdf VIP
文档评论(0)