- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构程设计报告
淮阴工学院
数据结构课程设计报告
: 一元稀疏多项式计算器
系(院): 计 算 机 工 程 系
专 业: 计算机科学与技术
班 级: 网络1xxx1
姓 名: xxx 学 号: 10xxx134
指导教师: xxxxxxx
学年学期: 2008 ~ 2009 学年 第 2 学期
摘要:
本文是关于任一元稀疏多项式的求解问题的描述,文中使用链式存储结构(带表头结点的单链表)存储一稀疏元多项式,实现了多项式的建立,多项式的输出,多项式a和b相加,多项式a和b相减等功能。鉴于C语言的优点,经过分析,将用C语言解决一元稀疏多项式的求解问题算法的描述。关键词:链表多项式数据结构3 详细设计和实现………………………………………………………5
3.1主函数………………………………………………………………5
3.2求导函数和求和函数…………………………………………………5
3.3其他函数……………………………………………………………10
4 调试和操作说明………………………………………………………12
5 总结……………………………………………………………………15
6 致谢……………………………………………………………………16
7 参考文献………………………………………………………………17
1需求分析
课程题目:一元稀疏多项式计算器设计一个一元多项式加法器2概要分析
本程序有五个函数:
PolyNode *Input()(输入函数);
PolyNode *Deri(PolyNode *head)(求导函数);
PolyNode * Plus(PolyNode *A,PolyNode *B)(求和函数);
void Output(PolyNode*head)(输出函数);
int main()(主函数)
本程序可使用带有附加头结点的单链表来实现多项式的链表表示,每个链表结点表示多项式的一项,命名为node,它包括两个数据成员:系数coef和指数exp,他们都是公共数据成员,*next为指针域,用链表来表示多项式。适用于不定的多项式,特别是对于项数再运算过程中动态增长的多项式,不存在存储溢出的问题。其次,对于某些零系数项,在执行加法运算后不再是零系数项,这就需要在结果多项式中增添新的项;对于某些非零系数项,在执行加法运算后可能是零系数项,这就需要在结果多项式中删去这些项,利用链表操作,可以简单的修改结点的指针以完成这种插入和删除运算(不像在顺序方式中那样,可能移动大量数据项)运行效率高。
3详细设计和实现
(1)首先介绍主函数:
int main()
{
PolyNode *head_a,*head_b;
int choice;
head_a=new PolyNode;head_a-next=NULL;
do
{
system(cls);//清屏函数
Output(head_a);
cout ______________________________\n;
cout|---------1.输入公式-----------|\n;
cout|---------2.求 导-----------|\n;
cout|---------3.两式求和-----------|\n;
cout|---------4.退出程序-----------|\n;
cout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n;
cinchoice;
if (choice==1) head_a=Input();
else if (choice==2) head_a=Deri(head_a); //求导
else if (choice==3) {head_b=Input();head_a=Plus(head_a,head_b);}//求和
else if (choice==4) break;
else cout输入错误,重新输入:\n;
}
while(choice!=5);
return 0;
(2)由于此程序是二人合作完成,我在此程序中主要是完成求和和求导函数的
设计。所以下面着重介绍下求和函数和求导函数。
PolyNode *Deri(PolyNode *head)(求导函数):
流程图如下:
图3.1求导函数流程图
求导函数部分代码:
PolyNode *Deri(PolyNode *head) //求导
{
PolyNode *p=head;
wh
文档评论(0)