一元多项式操作

合集下载

一元多项式的运算

一元多项式的运算

⼀元多项式的运算以⼀元多项式加法运算为例:A,B可⽤线性链表可以表⽰为:“和多项式”链表如下(图中的长⽅框表⽰已经被释放的结点):#include <stdio.h>#include <stdlib.h>typedef struct Polyn{int data;int index;struct Polyn *next;}Polyn,*Polynlist;void CreatPolyn(Polynlist &p,int m)//输⼊m项的系数和指数,建⽴⼀元多项式P{//有头结点Polyn *q=p;for(int i=0;i<m;i++){q->next=(Polyn*)malloc(sizeof(Polyn));q=q->next;// printf("第%d项系数、指数:",i+1);scanf("%d%d",&q->data,&q->index);}q->next=0;}void PrintPolyn(Polynlist &p)//打印⼀元多项式P{Polyn *q=p->next;//(x^0)和(x^1)要做特别处理if(q->index == 0){printf("%d",q->data);//可能第⼆项指数为xq=q->next;q=q->next;if(q && q->index == 1){if(q->data != 1)printf("%+dx",q->data);//正数则在前⾯加+,否则不加elseprintf("+x");q = q->next;}}else if(q->index == 1){if(q->data != 1)printf("%dx",q->data);elseprintf("x");q = q->next;}else{printf("%dx^%d",q->data,q->index);q = q->next;}while(q){printf("%+dx^%d",q->data,q->index);q=q->next;}printf("\n");}void CopyPolyn(Polynlist &q,Polyn *r)//空指针必须引⽤去创建,新开辟结点链表并复制(数据域和指针域) {q = (Polyn *)malloc(sizeof(Polyn));Polyn *q1 = q,*r1 = r->next;while(r1){q1->next = (Polyn *)malloc(sizeof(Polyn));q1 = q1->next;q1->data = r1->data;q1->index = r1->index;r1 = r1->next;}q1->next = NULL;}void ShowMenu(){printf("\t\t\t1.多项式相加\n");printf("\t\t\t2.多项式相减\n");printf("\t\t\t3.多项式相乘\n");printf("\t\t\t4.退出\n");}void AddPolyn(Polyn *p,Polyn *p1)//完成多项式相加运算,p=p+p1,并销毁p1{Polyn *qa,*qb,*prior,*r;//设置prior是为B链表中的结点插⼊A链表⽤prior = p;qa = p->next;qb = p1->next;while(qa && qb){if(qa->index < qb->index){prior = qa;qa = qa->next;}else if(qa->index > qb->index){r = qb;qb = qb->next;//摘取qb到“和多项式”链表中r->next = qa;prior->next = r;//更新priorprior = r;}else{else{if(qa->data + qb->data != 0){//修改qa所指结点的系数值,同时释放qb所指的结点qa->data = qa->data + qb->data;r = qb;qb = qb->next;free(r);}else{//释放指针qa和qb所指的结点r = qa;qa = qa->next;prior->next = qa;//衔接free(r);r = qb;qb = qb->next;free(r);}}}//B链表还有结点if(qb){prior->next = qb;//此时qa已为空指针}free(p1);//释放B头结点}void reverse(Polyn *p){Polyn *q = p->next;while(q){q->data = -(q->data);q = q->next;}}void DestroyPolyn(Polyn *r){Polyn *q;do{q = r;r = r->next;free(q);}while(r);}void AdjustPolyn(Polyn *r,int data,int index)//调整每⼀项{Polyn *q = r->next;while(q){q->data *= data;q->index += index;q = q->next;}}void SubtractPolyn(Polynlist &p,Polynlist &p1)//完成多项式相减运算,p=p-p1,并销毁p1 {reverse(p1);//将B链表的data域置反AddPolyn(p,p1);}void MultiplyPolyn(Polynlist &p,Polyn *p1)//完成多项式相乘运算,p=p*p1,并销毁p1{Polyn *q,*r = NULL,*r1 = NULL;q = p1->next;//A(x)--》bi*A(x)*x^eiCopyPolyn(r,p);AdjustPolyn(r,q->data,q->index);q = q->next;while(q){CopyPolyn(r1,p);AdjustPolyn(r1,q->data,q->index);AdjustPolyn(r1,q->data,q->index);AddPolyn(r,r1);//r1将被销毁r1 = NULL;//必须将r1置空q = q->next;}//r-->p,同时释放r链表DestroyPolyn(p);p = NULL;CopyPolyn(p,r);DestroyPolyn(r);}int main(){int m;Polyn *p=(Polyn*)malloc(sizeof(Polyn));Polyn *p1=(Polyn*)malloc(sizeof(Polyn));Polyn *p2 = NULL,*p3 = NULL;printf("按升幂输⼊多项式A(x),B(x)的系数,指数\n");printf("A(x)的项数:");scanf("%d",&m);CreatPolyn(p,m);printf("A(x)=");PrintPolyn(p);printf("B(x)的项数:");scanf("%d",&m);CreatPolyn(p1,m);printf("B(x)=");PrintPolyn(p1);//保存A,B原始多项式,此处的复制是新开辟结点链表CopyPolyn(p2,p);CopyPolyn(p3,p1);system("pause");system("cls");printf("A(x)=");PrintPolyn(p);printf("B(x)=");PrintPolyn(p1);printf("选择以下⼀种操作⽅式:\n");ShowMenu();do{printf("请输⼊你的选择:");scanf("%d",&m);switch(m){case1:AddPolyn(p,p1);printf("A(x)+B(x)=");PrintPolyn(p);break;case2:SubtractPolyn(p,p1);printf("A(x)-B(x)=");PrintPolyn(p);break;case3:MultiplyPolyn(p,p1);printf("A(x)*B(x)=");PrintPolyn(p);break;default:exit(0);}fflush(stdin);DestroyPolyn(p);p1 = p = NULL;//此时的p、p1为游离指针,必须要置空 CopyPolyn(p,p2);CopyPolyn(p1,p3);}while(1);return0;}运⾏结果截图:按Enter键之后。

一元多项式的定义和运算讲解

一元多项式的定义和运算讲解
定理 2.4.1
令f (x)是F [x]的一个次数大于零的多项式,并且
此处
定理 2.4.2
例 在有理数域上分解多项式 为不可约因式的乘积.容易看出
(2)
一次因式x + 1自然在有理数域上不可约.我们证明, 二次因式 也在有理数域上不可约.不然的话, 将能写成有理数域上两个次数小于2的因式 的乘积,因此将能写成
这个定义的条件也可以用另一种形式来叙述
若多项式 有一个非平凡因式 而 ,那么 与 的次数显然都小于 的次数.反之,若 能写成两个这样的多项式的乘积,那么 有非平凡因式.因此我们可以说:
这里
多项式的减法
2.1.5 多项式加法和乘法的运算规则
(1)加法交换律:
(2)加法结合律:
(3)乘法交换律:
(4)乘法结合律:
(5)乘法对加法的分配律:
注意:
要把一个多项式按“降幂”书写

时,
叫做多项式的首项.
2.1.6 多项式的运算性质
定理
是数环R上两个多项式,并且
定义 2
设 是多项式 与 的一个公因式.若是 能被 与 的每一个公因式整除,那么 叫做 与 的一个最大公因式.
定义 1
的任意两个多项式 与 一定有最大公因式.除一个零次因式外, 与 的最大公因式是唯一确定的,这就是说,若 是 与 的一个最大公因式,那么数域F的任何一个不为零的数 c与 的乘积 ,而且当 与 不全为零多项式时,只有这样的乘积是 与 的最大公因式.
由此得出,


的最大公因式,而
定理 2.3.3
的两个多项式 与 互素的充分且必要条 件是:在 中可以求得多项式 与 ,使

实验一一元多项式运算

实验一一元多项式运算

实验一一元多项式的运算1.问题定义及需求分析1.1课题目的和任务问题描述:设计一个一元多项式简单计算器。

实验要求:1)采用顺序表或链表等数据结构。

2)输入并建立多项式。

3)输出运算结果的多项式。

1.2数据形式输入数据形式:通过键盘输入。

输入值的范围:多项式的项数和指数的输入数据为int型,输入值范围为-32768至32767;多项式系数的输入值范围为float型,范围为1.2e-38至3.4e+38。

输出数据形式:输出到显示器。

1.3程序功能实现两个一元多项式之间的加法、减法和乘法运算。

1.4测试数据4 //第一个多项式的项数1 4 //第一项的系数和指数3 3 //第二项的系数和指数-2 2 //第三项的系数和指数6 0 //第四项的系数和指数5 //第二个多项式的项数-3 5 //第一项的系数和指数2 2 //第二项的系数和指数-6 0 //第三项的系数和指数-1 -1 //第四项的系数和指数1.2 -2 //第五项的系数和指数2.概要设计2.1抽象数据类型需要定义一个多项式类型的数据类型,里面包含一个int型的指数和一个float型的系数,再定义一个多项式节点,里面包含一个多项式类型的数据,和一个指向下一个节点的指针。

通过对多项式节点的操作,实现对输入数据的运算。

2.23.详细设计3.1存储结构实现多项式结构体:typedef struct{float coef;int expn;}Poly;typedef struct LNode{Poly data;struct LNode* next;}LNode,*LinkList;多项式类型的定义:typedef LinkList polynomial;3.2负责模块的伪码算法(1)int MultiplyPolyn(polynomial& a,polynomial& b){//多项式相乘 if(a,b中均没有项){return 0;}c=(polynomial)malloc(sizeof(LNode));//开辟一个c储存相乘结果 c->next=NULL;ha=a->next;//ha为a中的项hb=b->next;//hb为b中的项for(;hb不空;下一项){//将a中第一项与b中所有项相乘ha的系数*hb的系数;ha的指数*hb的指数;开辟一个新节点E,将数据存入,并把E连到c后}Sort(c);//对c中多项式排序ha=ha->next;//ha指向下一个项while(ha!=NULL){//将a中第二项与b中所有项相乘,存入d,然后将c和d相加得到新的c,再以此对a中其余各项做相同操作,最终得到乘法运算后的chb=b->next;//hb为b的第一项d=(polynomial)malloc(sizeof(LNode));//开辟一个d储存相乘结果d->next=NULL;for(;hb不空;下一项){//将a中第一项与b中所有项相乘 ha的系数*hb的系数;ha的指数*hb的指数;开辟一个新节点E,将数据存入,并把E连到d后;}Sort(d);//对d中多项式排序ha=ha->next;//ha 指向下一项AddPolyn(c,d);//将c ,d 相加得到新的c}t=a;a=c;//a 指向运算结果DestroyPolyn(b);//销毁初始的两个多项式DestroyPolyn(t);}(2)void DestroyPolyn(polynomial& L){//销毁多项式while(L!=NULL){p=L;L=L->next;//指向后一项free(p);}}(3)void Sort(polynomial& L){//对多项式的指数进行冒泡排序 for(多项式长度){for(j=L;j->next->next!=NULL;j=j->next){if(j->next 指数 <j->next->next 指数){//将大的冒到前面 p=j->next;q=j->next->next;p->next=q->next;q->next=p;j->next=q;}}}}4. 调试分析4.1问题分析与解决方法(1)多项式相乘对于多项式相乘,考虑到两个一元多项式的相乘,可以利用两个一元多项式相加的算法来实现,因为乘法运算可以分解为一系列的加法运算,所以只需循环执行加法运算,就可以完成多项式的相乘。

一元多项式的运算

一元多项式的运算

数据结构课程设计实验报告专业班级:学号:姓名:2011年1月1日题目:一元多项式的运算1、题目描述一元多项式的运算在此题中实现加、减法的运算,而多项式的减法可以通过加法来实现(只需在减法运算时系数前加负号)。

在数学上,一个一元n次多项式P n(X)可按降序写成:P n(X)= P n X^n+ P(n-1)X^(n-1)+......+ P1X+P0它由n+1个系数惟一确定,因此,在计算机里它可以用一个线性表P来表示:P=(P n,P(n-1),......,P1,P0)每一项的指数i隐含在其系数P i的序号里。

假设Q m(X)是一元m次多项式,同样可以用一个线性表Q来表示:Q=(q m,q(m-1),.....,q1,q0)不是一般性,假设吗吗m<n,则两个多想是相加的结果:R n(X)= P n(X)+ Q m(X)很显然,可以对P,Q和R采用顺序存储结构,使得多项式相加的算法定义和实现简单化。

然而,在通常的应用中,多项式的次数可能变化很大而且很高,使得顺序存储结构的最大长度很难确定。

特别是在处理项数少且次数特别高的情况下,对内存空间的浪费是相当大的。

因此,一般情况下,都采用链式存储结构来处理多项式的运算,使得两个线性链表分别表示一元多项式P n(X)和Q m(X),每个结点表示多项式中的一项。

通过分析多项式的特征,不难看出多项式是由单项式构成的,而每个单项式都具有系数和指数,当系数为0时,该项就是去了意义,在计算机内要表示一个多项式,至少具有以下数据信息:系数信息、指数信息和指向下一个单项式的指针。

通过指针,我们就可以把多个单项式连接起来,形成一个多项式。

2、任务要求系数定义的是float型,范围是3.4*10^-38~3.4*10^38;指数定义的是int型,范围是-2147483648~+2147483647;输入多项式系数及指数,系统会自动将系数转化为浮点型。

功能:(1).提示输入数据。

一元多项式除法运算例子

一元多项式除法运算例子

一元多项式除法运算例子
1. 嘿,咱就说多项式除法就像分苹果一样!比如说吧,(x³ + 2x² - x + 1) ÷ (x - 1),这不就像是要把一堆苹果按照某种方式分给几个人嘛。

你不想看看怎么分吗?
2. 哇哦,想想看一元多项式除法啊,就像一场精彩的游戏!拿(x² + 3x + 2) ÷ (x + 1)来说,这就如同在游戏中解开一个谜题一样刺激呢!难道你不想参与进来?
3. 哎呀呀,一元多项式除法运算有的时候真让人头疼但又很有趣呢!像
(x^4 - 1) ÷ (x + 1),简直就是在挑战你的大脑!你不会觉得这很有意思吗?
4. 嘿,你知道吗,一元多项式除法有时候就像走迷宫一样!比如(x³ - 3x² + 2x) ÷ (x - 2),得一步步找到正确的路啊!这可太吸引人了吧!
5. 哇塞,一元多项式除法,那可真是个神奇的东西!好比说(x² - 4x + 3) ÷ (x - 3),就跟寻找宝藏一样充满惊喜呢!你不想去挖掘一下吗?
6. 哈哈,一元多项式除法运算啊,像是一场奇妙的冒险!就像(x³ + x² - 5x - 6) ÷ (x + 2),是不是感觉很刺激,很想去尝试一下?
7. 哎呀,一元多项式除法有时候就像是解开一道复杂的密码!比如(2x³ +
5x。

§1.2_一元多项式的定义和运算

§1.2_一元多项式的定义和运算

an 0, bm 0 anbm 0
f x g x 0
f x g x nm
多项式乘法没有零因子。
第一章 多项式
推论1:若 f x g x 0 f x 0或g x 0 证:若f=0或g=0,则必有fg=0。 反之,若 f x 0, g x 0
第一章
多项式
定义2: f x , g x 是两个多项式, f x g x
最高次项, 亦称为首项。 除系数为0的项之外,同次项的系数都相等。 多项式的表法唯一。 方程 a0 a1x an xn 0 是一个条件等式而不是 两个多项式相等。 定义3: 设 f x a0 a1x
k 相乘积的和作为 x 的系数。得:
k f x g x aib j x k 0 i j k 2 3 2 例1.2.3:设 f x 3x 4x 5, g x x 2x x 1
nm
f x g x x 5x 5x 6
f x n.
第一章 多项式
an xn , an 0,
非负整数n称为 f x 的次数,记为:
2 f x 3 x 2x 1, f x 2, 例1.2.2:
f x 3, f x 0
零次多项式:次数为0的多项式即非零常数。 零多项式:系数全为0的多项式。对零多项式不 定义次数,因此,在谈论多项式的次数时,意味着这 个多项式不是零多项式。 首一多项式:首项系数为1的多项式。 二、多项式的运算 定义4: 设 f x a0 a1x
第一章 多项式

一元多项式

一元多项式

《数据结构课程设计》报告学号:姓名:年级:专业:指导老师:完成日期:年月目录一、一元多项式的加法运算1、实验内容2、需求分析...........................................3、概要设计...........................................4、详细设计...........................................5、调试分析...........................................6、测试结果...........................................7、用户使用说明.......................................一元多项式计算一、实验内容一元多项式的计算的相加二、需求分析建立一元多项式并按照降幂输出多项式,将一元多项式输入并存储在链表中,能够完成两个多项式的加减运算并输出结果1.输入的形式和输入值的范围:(1)功能选择的输入必须是整型,输入值只能是1|2|3|4中的任一个数;(2)系数的输入必须是实型,当输入非实型数据时,例如输入字母a时,程序会提示输入系数不合法,重新输入;(2)输入的指数必须为整型,当输入的指数为浮点型如2.1时,程序会提示输入指数不合法,重新输入。

(3)多项式项数的输入形式必须是整形,输入值的范围大于等于0。

2.输出的形式:(1)功能选择的输出形式,例:输入“1”,则输出“请输入多项式a的项数:”;(2)多项式a的输出形式,例:已输入a的系数和指数分别为1,则输出“多项式a=x”;(3)多相式b的输出形式,例:已输入b的系数和指数分别为-1,则输出“多项式b=-x”;(4)a+b的输出形式为,例:已输入a=x,b=x,则输出“a+b=2x”。

3.程序所能达到的功能:(1)实现一元多项式的输入;(2)实现一元多项式的输出;(3)计算两个一元多项式的和并输出结果。

一元多项式的表示及运算

一元多项式的表示及运算

中国石油大学(华东) 2012 级上机实习报告课程名称:实用数据结构上机题目:一元多项式的表示及运算学生姓名:专业班级:应用物理1203指导教师郑立垠实习时间2013 年10 月21 日至11 月09 日成绩2013年11 月11 日一、需求分析(要实现的功能描述)1.问题描述设计并实现一元多项式的表示和运算,加强对线性表等数据结构的理解,锻炼学生使用多种数据结构解决问题的综合能力。

2.实现功能(1)在计算机上存储任意输入的一个一元多项式;(2)计算功能,对任意输入的一个x值,能够计算出一元多项式的值;(3)求和功能,能够实现两个一元多项式的加法运算;(4)求导功能,实现一元多项式的一阶导数的运算。

3.测试数据F1(x)=1+x+x^2+x^3+x^4+x^5x=2F2(x)=1+x+x^2二、概要设计程序主要包含:一元多项式的创建、一元多项式代入求值、两个一元多项式相加、一元多项式的求导以及主函数。

主函数调用一元多项式的创建、一元多项式的求值,一元多项式的相加、一元多项式的求导等子函数。

1.创建一元多项式void Create(Lnode *f)//创建一元多项式2.一元多项式求值void Calculate(Lnode *f,float x)//一元多项式的求值3.一元多项式相加void Plus(Lnode *f1,Lnode *f2)//两个一元多项式相加4.一元多项式求导void Dao(Lnode *f)//一元多项式求导5.主函数void main()三、详细设计抽象数据类型中定义的各种操作算法实现(用N-S图描述)四、调试分析1.程序在调试过程中出现的问题及解决方法●问题:程序设计中遍历字符串并保存各项系数以及指数都比较困难。

●解决办法:利用自己手动输入各项指数和系数的办法,直接控制输入各项的系数和指数,并保存。

●另外,不同的系数在顺序表中对应不同的存储位置,在后面加法,求导的时候利用这一特性很快速达成目标。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
r->next=q;
q=s;
}
}
p=head1->next;//遍历head1链表,计数,将head1的项数算出并赋给head1头结点的指数位作记录
while(p!=NULL)
{
count2++;
p=p->next;
}
head1->ci=count2;
return head1;
}
dxs *paixu(dxs *head)//多项式整理排序函数
if(oper1=='+')//三个多项式相加
{
head2=create();
head2=paixu(head2);
display1(head2);
head1=jia(head1,head2);
head1=paixu(head1);
display1(head1);
head3=create();
head3=paixu(head3);
head=new dxs;
head->ci=n;//头结点的指数位储存这个多项式有多少个项
head->next=NULL;
tail=head;
for(int i=0;i<n;i++)
{
cout<<"Input Di "<<i+1<<" Xiang Xi Shu:";//输入每项得系数
cin>>xi1;
{
float xi1,xi2;
int ci1,ci2,count2=0;
dxs *p,*q;
dxs *r=head1;
dxs *s=head2;
if((head1->ci)<(head2->ci))//把两个多项式中项数最多的多项式的头结点地址给head1
{
head2=head1;
head1=s;
}
时间复杂度:O(2n)空间复杂度:O(1)
4、一元多项式相乘运算:
P20000(x)=1+5x5000+3x10000+6x15000+ 9x20000
Q20000(x)=8+2x3000+4x11000+3x12000+ 4x20000
结果为:
36x40000+24x35000+27x32000+36x31000+12x30000+18x27000+24x26000+20x25000+18x23000+9x22000+12x21000+76x20000+12x18000+15x17000+20x16000+48x15000+6x13000+3x12000+4x11000+24x10000+10x8000+40x5000+2x3000+8
2、一元多项式的输入:先输入这个多项式有多少项,再依据提示依次输入每一项的系数和指数。每输入一个系数和一个指数后建立一个项的结点,并与前后项建立联系。
一元多项式的输出:先调用一个paixu()排序函数对新建立的一元多项式进行整理排序,合并同类项和按降序排列。然后,调用display1()输出函数按链表次序输出。
}
}
else
{
if((dis->xi)!=0)
{
if((dis->xi)>0 && count1!=0)
{
cout<<"+";
}
cout<<dis->xi;
}
}
dis=dis->next;
count1++;
}
cout<<endl;
}
dxs *jia(dxs *head1,dxs *head2)//两个多项式相加的函数,带有返回值
display1(head3);
head1=jia(head1,head3);
head1=paixu(head1);
display1(head1);
}
if(oper1=='/') dao(head1);//一个多项式微商
if(oper1=='*')//两个多项式相乘
{
head2=create();
head2=paixu(head2);
5、一元多项式微商运算:
P20000(x)=1+5x5000+3x10000+6x15000+ 9x20000
结果为:180000x19999+90000x14999+30000x9999+25000x4999
对整个多项式链表进行遍历,每项的系数乘以它的指数,然后指数减一。如果指数为0则在微商后清除该项。整理排序,打印在屏幕上。
cout<<dis->xi;
cout<<"x^"<<dis->ci;
}
}
else if((dis->ci)==1)
{
if((dis->xi)!=0)
{
if((dis->xi)>0 && count1!=0)
{
cout<<"+";
}
if((dis->xi)!=1)
cout<<dis->xi;
cout<<"x";
char oper1;//定义一个操作数,用于选择+*和微商
head1=create();//建立第一个多项式
head1=paixu(head1);//将第一个多项式整理排序
display1(head1);//将第一个多项式打印在屏幕上
cout<<"Input Action:";
cin>>oper1;//选择操作
两个多项式相乘,建立一个新的多项式链表head3,用于记录两个多项式相乘后每个项数。第一个多项式链表的第一项与第二个多项式链表的所有项相乘,然后将结果以结点的方式连接到head3中,然后第一个多项式链表的第二项再与第二个多项式链表的所有项相乘……最后对head3进行整理和排序,再打印到屏幕上。
时间复杂度:O(n2)空间复杂度:O(2)
输出格式为:3x^8+7x^5+23x^3+x^2+1,效果如后面几张截图所示。
时间复杂度:O(n)空间复杂度:O(1)
3、一元多项式的相加运算:
P20000(x)=1+5x5000+3x10000+6x15000+ 9x20000
Q20000(x)=8+2x3000+4x11000+3x12000+ 4x20000
时间复杂度:O(n)空间复杂度:O(1)
程序代码(已加注释):
#include<iostream.h>
struct dxs//定义结构体:浮点型xi记录一个项的系数,整型ci记录一个项的指数
{
float xi;
int ci;
dxs *next;
};
dxs *create();//各个函数的原形
void display1(dxs *head);
{
xi4=q->xi;
ci4=q->ci;
temp=new dxs;
temp->xi=xi3*xi4;
temp->ci=ci3+ci4;
temp->next=NULL;
tail->next=temp;
tail=temp;
q=q->next;
}
p=p->next;
}
head3=paixu(head3);//排序整理
{
p=p->next;
}
else if((p->ci)==(q->ci))
{
(p->xi)=(p->xi)+(q->xi);//指数相同项系数相加
s=q;
q=q->next;
}
else if((p->ci)<(q->ci))
{
s=q->next;//指数不同项依次连接到head1链表上
q->next=p;
tail=temp;
}
else i--;
}
temp=new dxs;
temp->xi=0;
temp->ci=0;
temp->next=NULL;
tail->next=temp;
tail=temp;
return head;
}
void display1(dxs *head)//输入多项式函数
{
dxs *dis=head;
xs *paixu(dxs *head);
void dao(dxs *head);
void cheng(dxs *head1,dxs *head2);
int main()//主函数
{
dxs *head1,*head2,*head3;//定义三个结构体指针
}
return head;
}
void dao(dxs *head)//微商函数
{
dxs *p=head;
p=p->next;
相关文档
最新文档