- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构报告一元多项式
数据结构
课程设计报告
主题:实现一元多项式抽象数据类型
学号:20091003768
班级:计科四班
姓名:熊金莲
指导老师:郭艳
内容概要
题目要求
实现该一元多项式抽象数据类型的要点
函数模块及各函数可实现的功能简介
具体的源代码
使用说明
实验心得
一:题目要求如下:
构造一个空的多项式
多项式插入新的一项
多项式合并同类项
多项式加法
多项式乘法
打印多项式
计算多项式的值
二:构思要点
以链表形式创建两个多项式a与b,a与b的加法与乘法用到链式结构的操作。因为系数coef设置为浮点类型,指数expn设置为整形,所以构思是输入多项式的系数和指数时,以0 0为输入结束标志,并设置这一判断语句。在插入函数中,寻找多项式适当的插入位置,可以实现多项式的升序排列,同时也在该插入函数中实现多项式合并同类项的功能。为???现多项式相加相乘定义了相加函数及相乘函数,实现a与b的相加相乘时直接调用。还有就是定义输出函数,打印各多项式。再者计算多项式的值时,先输入x的值,带入多项式计算即可。在主函数中使用switch语句,在此为了让本一元多项式功能步步展示,省去了各个case后的break语句。
三:各函数模块
/*第一,二部分 构造一个空的多项式并用链表插入法创建多项式*/
void Insertlinklist(linklist p,linklist q) /*第一部分 链表插入*/
{
if(p-coef==0)free(p); //系数为0则该项为空 释放结点空间
else
{
linklist q1,q2;
q1=q;q2=q-next;
while(q2p-expnq2-expn){q1=q2;q2=q2-next;}
//寻找将插入的位置
if(q2p-expn==q2-expn)
{
q2-coef+=p-coef;free(p);
if(q2-coef==0){q1-next=q2-next;free(q2);} //系数为0则该项为空 释放结点空间
}
else {p-next=q2;q1-next=p;} //指数异于其他项指数时将结点插入
}
}
linklist Createlinklist(linklist head) /*第二部分 创建链表*/
{
linklist p;int n;float m;
p=head=(linklist)malloc(sizeof(struct lnode));
p-next=NULL;
scanf(%f%d,m,n);
while(m!=0||n!=0) //当输入为0 0时结束输入
{
p=(linklist)malloc(sizeof(struct lnode));
p-coef=m;p-expn=n;
Insertlinklist(p,head); /*调用第一部分函数*/
scanf(%f%d,m,n);
}
return head;
}
2)/*第二部分 销毁链表*/
void Destroylinklist(linklist p)
{
linklist q1=p-next,q2=q1-next;
while(q2){free(q1);q1=q2;q2=q2-next;}
}
3)/*第三部分 打印链表*/
void Printlinklist(linklist p)
{
linklist q=p-next; int c=1;
if(!q){putchar(0);printf(\n);return;}
while(q)
{
if(q-coef0c!=1)putchar(+);
if(q-coef!=1q-coef!=-1)
{
printf(%f,q-coef);
if(q-expn==1)putchar(x);
else if(q-expn)printf(x^%d,q-expn);
}
else
{
if(q-coef==1)
{
if(!q-expn)putchar(1);
else if(q-expn==1)putchar(x);
else printf(x^%d,q-expn);
}
else if(q-coef==-
文档评论(0)