- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一元稀疏多项式计算器实验报告程序
一元稀疏多项式计数器预习报告
姓名:刘茂 学号222012315220062
一、实验要求
(1)输入并建立多项式;
(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列;
(3)多项式a和b相加,建立多项式a+b;
(4)多项式a和b相减,建立多项式a-b。
(5)多项式求值;
(6)多项式求导;
(7)求多项式的乘积。
二、测试数据:
1、(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(-3.1x^11+11x^9+2x+7);
2、(6x^-3-x+4.4x^2-1.2x^9+1.2x^9)-(-6x^-3+5.4x^2-x^2+7.8x^15
)=(-7.8x^15-1.2x^9+12x^-3-x);
3、(1+x+x^2+x^3+x^4+x^5)+(-x^3-x^4)=(1+x+x^2+x^5);
4、(x+x^3)+(-x-x^3)=0;
5、(x+x^100)+(x^100+x^200)=(x+2x^100+x^200);
6、(x+x^2+x^3)+0=x+x^2+x^3.
7、互换上述测试数据中的前后两个多项式。
三、思路分析
用带表头结点的单链表存储多项式。
本程序要求输入并建立多项式,能够降幂显示出多项式,实现多项式相加相减的计算问题,输出结果。
采用链表的方式存储链表,定义结点结构体。运用尾差法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b。
为实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项。
① 若p-expq-expn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。
② 若p-exp=q-expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。
③ 若p-expq-expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。
#includestdio.h
#includemalloc.h
#includestdlib.h
//定义多项式的项
typedef struct Polynomial{
float coef;
int expn;
struct Polynomial *next;
}*Polyn,Polynomial;
void Insert(Polyn p,Polyn h){
if(p-coef==0) free(p);//系数为0的话释放结点
else
{
Polyn q1,q2;
q1=h;
q2=h-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);
}
}
else
{//指数为新时将结点插入
p-next=q2;
q1-next=p;
}
}
}
Polyn CreatePolyn(Polyn head,int m){
//建立一个头指针为head、项数为m的一元多项式
int i;
Polyn p;
p=head=(Polyn)malloc(sizeof(struct Polynomial));
head-next=NULL;
for(i=0;im;i++)
{
p=(Polyn)malloc(sizeof(struct Polynomial));//建立新结点以接收数据
printf(请输入第%d项的系数与指数:,i+1);
scanf(%f %d,p-coef,p-expn);
Insert(p,head); //调用Insert函数插入结点
}
return head;
}
void DestroyPolyn(Polyn p){
//销毁多项式p
Polyn q1,q2;
您可能关注的文档
- 《电力电子技术》第六七八章习题答案.doc
- 《电子测量仪器》第章电压测量仪器.ppt
- 《电力电子学》第三版第七章.ppt
- 《犯罪心理画像行为证据分析入门》白话讲座课.doc
- 《直角三角形》课件.ppt
- 《电工技术及电子技术》课件chapter晶闸管及其应用.ppt
- 《直角三角形性质》教学设计.doc
- 《用样本的数字特征估计总体的数字特征》.ppt
- 《程控交换原理》练习题及答案.doc
- 《第四单元电解原理及其应用》第课时.ppt
- 2024年公务员省考之行测题库练习试卷A卷附答案 .pdf
- 2024年4月高教自考《财务管理学》试卷含解析.pdf
- 2024年【安全员-A证】模拟考试题及答案.pdf
- 2024年(最新)国开(电大)本科《公共行政学》期末题库(含答案).pdf
- 2024年公务员(国考)之行政职业能力测验精选试题及答案二 .pdf
- 2024届贵州省普通高中高二学业水平合格性考试考前模拟全真演练物理试 完整版720893906.pdf
- 2024年人教版六年级语文上册的教学计划(3篇) .pdf
- 2024山东省成人高考专升本《教育理论》真题库汇编及答案 .pdf
- 2024年【煤炭生产经营单位(安全生产管理人员)】考试及答案 .pdf
- 2024届江苏省泰兴市实验语文八年级第二学期期末达标检测模拟试题含解析.pdf
文档评论(0)