数据结构课程设计一元多项式的加减法运算

数据结构课程设计一元多项式的加减法运算
数据结构课程设计一元多项式的加减法运算

武汉理工大学华夏学院

课程设计报告书

课程名称:数据结构与算法分析

题目:用C语言实现一元多项式的加减法运算

系名:信息工程系

专业班级:物联网工程1122班

姓名:隋明超

学号: 10213312201 指导教师:司晓梅

2014年 1 月 3 日

武汉理工大学华夏学院信息工程系

课程设计任务书

课程名称:数据结构与算法分析指导教师:司晓梅班级名称:物联网1121-2 开课系、教研室:信息系计算机

一、课程设计目的与任务

《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。

任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。

二、课程设计的内容与基本要求

设计题目:用C语言实现一元多项式的加减法计算

〔问题描述〕输入并建立两个多项式并输出多项式

设计一个程序:对两个多项式进行加、减法运算,建立一个新多项式并输出。

〔实现提示〕:选择单链表存储多项式

具体要完成的任务是:

A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。

B. 写出规范的课程设计报告书;

三、课程设计步骤及时间进度和场地安排

时间:本课程设计安排在第18周地点:现代教育中心

具体时间安排如下:

第一天:布置题目,确定任务、查找相关资料

第二天~第四天:功能分析,编写程序,调试程序、运行系统;

第五天上午:撰写设计报告;

第五天下午:程序验收、答辩。

四、课程设计考核及评分标准

课程设计考核将综合考虑学生的系统设计方案、运行结果、课程设计报告书的质量、态度、考勤、答辩情况等各因素。具体评分标准如下:

(1)设计方案正确,具有可行性、创新性; 30分

(2)系统开发效果较好; 20分

(3)设计报告规范、课程设计报告质量高; 20分

(4)课程设计答辩时,问题回答正确; 20分

(5)态度认真、刻苦钻研、遵守纪律; 10分

按上述五项分别记分后求和,总分按五级制记载最后成绩。

优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)

1.设计题目:

用C语言实现一元多项式的加减法运算

2.开发环境、采用的语言:

(1)Windows XP 中文操作系统

(2) Visual C++ 6.0

3.设计思想(对你的整个设计思路作出说明):

3.1问题描述:

输入并建立两个多项式并输出多项式,对两个多项式进行加、减法运算,建立一个新多项式并输出。

3.2问题思考:

用C语言编写一段程序,该程序的功能相当于一个一元多项式的计算器,能够实现按照指数降幂建立并输出多项式,并且能够完成多个多项式的相加、相减运算及结果输出的功能。

此程序的数据结构是选择用带表头结点的单链表存储多项式。虽然一元多项式可以用顺序和链表存储结果表示,但顺序结构的最大长度很难确定。比如当多项式的系数较大时,此时就会浪费存储空间,所以应该选用链表结构来存储一元多项式。但链表的结构体可以用来存储多项式的系数、指数、下一个指针3个元素,这样便于实现任意多项式的加法、减法运算。

3.3功能设计:

(1)多项式建立:

提示用户输入两个多项式A和B,输入形式为:

1)先输入多项式A的项数,回车

2)输入多项式A第一项的系数,空格隔开输入多项式A第一项的指数,

3)继续输入多项式A的其他项,输入方式与上同;

4)再建立多项式B,数据输入方式与建立多项式A相同。

(2)功能项:

设计一个功能项,分别为1.输出多项式a和b

2.输出多项式a+b

3.输出多项式a-b

4.退出

(3)执行操作:

此时用户可以根据需要选择功能项中四项进行输出。

4.程序总的流程图:

通过设计思想,可设计出如图4-1所示的一元多项式总流程图:

图4.1一元多项式总流程图

5. 数据结构说明及模块算法说明(或流程图):、

5.1存储结构:

一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。

5.2基本算法:

(1)一元多项式的建立:

输入多项式采用头插法的方式,输入多项式中的一个项的系数和指数,就产生一个新

开始 申请结点空间 输入多项式的项数

输入多项式各项的系数 M, 指数 N

输出已输入的多项式

进行多项式的输出、加法、减法运算

结束

是否输入正确

的结点,建立起它的右指针,并用头结点指向它;为了判断一个多项式是否输入结束,定义一个结束标志,当输入非0时就继续;输入为0时,就结束一个多项式的输入。

(2)显示一元多项式:

如果系数是大于0的话就输出<+系数M^指数>的形式;如果系数是小于0的话就输出<系数x^指数>的形式;如果指数为0的话就直接输出<系数>;如果指数是1的话就直接输出<+M>;如果指数是-1的话,就直接输出<-M>。

(3)一元多项式加法运算:

从两个多项式的头部开始判断,当两个多项式的某一项度不为空时,假设P、Q分别指向多项式A和多项式B中当前进行比较的结点,然后比较两个结点中的指数项,有三种情况:1、当P所指结点的指数小于Q的话,就应该复制P的结点到多项式链中。2、P所指结点的指数如果大于Q的指数的话,就应该复制Q的结点到多项式链中。3、当P所指结点的指数等于Q所指结点的指数时,则将两个结点中的系数相加,若和不为0,则修改P所指结点的系数值,同时释放Q所指结点;若和为0,从多项式A的链表中删除相应结点,并释放P、Q所指结点。加法流程图如图5.2-1所示:

图5.2-1一元多项式加法运算流程图

(4)一元多项式的减法

从两个多项式的头部开始判断,当两个多项式的某一项度不为空时,假设P 、Q 分别

指向多项式A 和多项式B 中当前进行比较的结点,然后比较两个结点中的指数项,有三种情况:1、当P 所指结点的指数小于Q 的话,就应该复制P 的结点到多项式链中。2、P 所指结点的指数如果大于Q 的指数的话,就应该复制Q 的结点到多项式链中,并将建立的结点系数变为相反数。3、当P 所指结点的指数等于Q 所指结点的指数时,并将Q 的结点系数变为相反数,并将两个结点中的系数相加,若和不为0,则修改P 所指结点的系数值,同时释放Q

开始

定义存储结果的空链 r

输出存储多项式的和的链r 结束

同指数项系数相加后存入r

把p 中各项系数改变符号后存入r

直接把q 中各项存入r

存储多项式2的空链Q 是否为空

存储多项式1的空链P 是否为空 合并同类项

所指结点;若和为0,从多项式A 的链表中删除相应结点,并释放P 、Q 所指结点。减法流程图如图5.2-2所示:

图5.2-2 一元多项式减法运算流程图

6. 程序运行说明及结果截图:

6.1欢迎界面:

开始

定义存储结果的空链 r

输出存储多项式的和的链r

结束

同指数项系数相加后存入r 中

把p 中各项系数改变符号后存入r 中

直接把q 中各项存入r

存储多项式2的空链Q 是否为空

存储多项式1的空链P 是否为空

合并同类项

程序打开,首先显示上的是欢迎界面,在欢迎界面下方有第一个多项式的输入模块。

图 6.1欢迎界面

6.2输入界面:

看到输入界面后,输入第一个多项式的项数,接下来输入这个多项式第一项的系数,空格继续输入这个多项式的指数。回车继续输入下一项,输入完后回车输入下一个多项式

图6.2输入界面

6.3功能选项:

当数据输入完成后进入功能选项,在功能选项可以选择自己想要实现的功能进行操作。

图6.3功能选项

6.4多项式输出:

在执行操作中选择1,输出多项式a和b。

图6.4多项式输出

6.5多项式相加:

在执行操作中选择2,输出多项式a+b。

图6.5多项式相加

6.6多项式相减:

在执行操作中选择3,输出多项式a-b。

图6.6多项式相减

7. 程序调试及测试过程记载:

本次课程设计中,经过反复调试,程序已经可以正常运行。在设计该算法时,出现

了一些问题,例如在建立链表时头指针的设立导致了之后运用到相关的指针时没能很好的移动指针出现了数据重复输出或是输出系统缺省值,不能实现算法。实现加法时该链表并没有向通常那样通过建立第三个链表来存放运算结果,而是再度利用了链表之一来进行节点的比较插入删除等操作。为了使输入数据按指数降序排列,可在数据的输入后

先做一个节点的排序函数,通过对链表排序后再进行之后加减运算。

8.总结及心得体会:

在这次课程设计中,我遇到了不少困难,但是在我的坚持和虚心请教中都得到顺利解决。在这次课程设计中,我发现理论必须和实践相结合,才能真正学会程序设计,才能完成一个课题。在这次设计中我参考了不少书籍,从中学到了课堂中无法学到的许多东西,对此我感到很兴奋。原来不断的学习,不断的探索是苦中带着甜,虽然经历了不少弯路,经历了不少挫折,但当程序调试成功后,当运行能达到要求后,我感到十二分成就感。面对课题,要展现自信出来,这是成功的一半,在这个设计过程中,不懂的可以虚心向老师请教,与同学交流经验。态度是成功的基石!

在我这课题中,关键在于对一元多项式的表示及相加的操作。这个实际问题,在学习过的知识中找到一种合适的模型来模拟,数据结构的选择是主要,而对于编写代码,所涉及的并不是很复杂,对于链表数据存储访问方式,在C语言的学习过程中已经有过很多讲解,为了进一步了解,我还阅读了一些数据结构中关于链表的叙述。对于这个课题,运用C语言简单一点的结构化程序设计已足能满足要求而不至于结构过于复杂,为了简便的实现插入操作,我选择了一个带表头结点的链表。在写源代码时要注意指针使用的正确性,为产生的新结点需及时分配存储空间。在设计中将问题抽象化,而完成后在运行时,可以说是用抽象的数据模型来解决实际问题。我的这个课题相比较于其他同学来说,是相对简单的一点的。在现实中,很多功能现在都没法实现,还有不少操作需进一步完善,这次程序设计有很多不足处,可能是因为经验不足,对问题预期不够等一些不可预见的原因所致,这些都是我以后要汲取的教训。

9. 附录:源代码(注意要加上详细的注释)

#include

#include

typedef struct Polynomial{

float coef;

int expn;

struct Polynomial *next;

}*Polyn,Polynomial; //Polyn为结点指针类型

void Insert(Polyn p,Polyn h){

if(p->coef==0) free(p); //系数为0的话释放结点

else{

Polyn q1,q2;

q1=h;q2=h->next;

while(q2&&p->expnexpn){ //查找插入位置

q1=q2;

q2=q2->next;

}

if(q2&&p->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;

}

}

}//Insert

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;i

p=(Polyn)malloc(sizeof(struct Polynomial));//建立新结点以接收数据 printf("请输入第%d项的系数与指数:",i+1);

scanf("%f %d",&p->coef,&p->expn);

Insert(p,head); //调用Insert函数插入结点

}

return head;

}//CreatePolyn

void DestroyPolyn(Polyn p){//销毁多项式p

Polyn q1,q2;

q1=p->next;

q2=q1->next;

while(q1->next){

free(q1);

q1=q2;//指针后移

q2=q2->next;

}

}

void PrintPolyn(Polyn P){

Polyn q=P->next;

int flag=1;//项数计数器

if(!q) { //若多项式为空,输出0

putchar('0');

printf("\n");

return;

}

while (q){

if(q->coef>0&&flag!=1) putchar('+'); //系数大于0且不是第一项

if(q->coef!=1&&q->coef!=-1){//系数非1或-1的普通情况

printf("%g",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);

}

if(q->coef==-1){

if(!q->expn) printf("-1");

else if(q->expn==1) printf("-X");

else printf("-X^%d",q->expn);

}

}

q=q->next;

flag++;

}//while

printf("\n");

}//PrintPolyn

int compare(Polyn a,Polyn b){

if(a&&b){

if(!b||a->expn>b->expn) return 1;

else if(!a||a->expnexpn) return -1;

else return 0;

}

else if(!a&&b) return -1;//a多项式已空,但b多项式非空

else return 1;//b多项式已空,但a多项式非空

}//compare

Polyn AddPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针 Polyn qa=pa->next;

Polyn qb=pb->next;

Polyn headc,hc,qc;

hc=(Polyn)malloc(sizeof(struct Polynomial));//建立头结点

hc->next=NULL;

headc=hc;

while(qa||qb){

qc=(Polyn)malloc(sizeof(struct Polynomial)); switch(compare(qa,qb)){

case 1:

{

qc->coef=qa->coef;

qc->expn=qa->expn;

qa=qa->next;

break;

}

case 0:

{

qc->coef=qa->coef+qb->coef;

qc->expn=qa->expn;

qa=qa->next;

qb=qb->next;

break;

}

case -1:

{

qc->coef=qb->coef;

qc->expn=qb->expn;

qb=qb->next;

break;

}

}//switch

if(qc->coef!=0){

qc->next=hc->next;

hc->next=qc;

hc=qc;

}

else free(qc);//当相加系数为0时,释放该结点 }//while

return headc;

}//AddPolyn

Polyn SubtractPolyn(Polyn pa,Polyn pb){//求解并建立多项式a+b,返回其头指针 Polyn h=pb;

Polyn p=pb->next;

Polyn pd;

while(p){ //将pb的系数取反

p->coef*=-1;

p=p->next;

}

pd=AddPolyn(pa,h);

for(p=h->next;p;p=p->next) //恢复pb的系数

p->coef*=-1;

return pd;

}//SubtractPolyn

int main(){

int m,n,flag=0;

float x;

Polyn pa=0,pb=0,pc,pd,pe,pf;//定义各式的头指针,pa与pb在使用前付初值NULL printf("***************************欢迎您的使用**************************\n");

printf("请输入多项式a的项数:");

scanf("%d",&m);

pa=CreatePolyn(pa,m);//建立多项式a

printf("************************************************************

*****\n");

printf("请输入多项式b的项数:");

scanf("%d",&n);

pb=CreatePolyn(pb,n);//建立多项式b

//输出菜单

printf("************************************************************

*****\n");

printf("功能项:\n\t1.输出多项式a和b\n\t2.建立多项式a+b\n\t3.建立多项式a-b\n");

printf("\t4.退出\n**************************请输入功能项编号***********************\n");

for(;;flag=0){

printf("执行操作:");

scanf("%d",&flag);

if(flag==1){

printf("多项式a:");PrintPolyn(pa);

printf("多项式b:");PrintPolyn(pb);printf("*************************请输入功能项编号************************\n");continue;

}

if(flag==2){

pc=AddPolyn(pa,pb);

printf("多项式a+b:");PrintPolyn(pc);

DestroyPolyn(pc);printf("*************************请输入功能项编号************************\n");continue;

}

if(flag==3){

pd=SubtractPolyn(pa,pb);

printf("多项式a-b:");PrintPolyn(pd);

DestroyPolyn(pd);printf("**************************请输入功能项编号***********************\n");continue;

}

if(flag==4) break;

if(flag<1||flag>4) printf("Error!!!\n");continue;

}//for

DestroyPolyn(pa);

DestroyPolyn(pb);

return 0;

}

设计过程中质疑(或答辩)记载:

1.如何创建一个多项式?

创建一个新的一元多项式,是创建一个单链表,然后用do循环输入一元多项式从高幂项到低幂项的顺序输入各项的系数和幂,以“系数,指数”的格式输入数据,当系数与指数两项同时为零时停止输入。

2.加法算法是如何工作?

将两个多项式执行pa+pb的计算,从高幂次项向低幂次项,无等幂项直接将数值输出结果单链表,有等幂项两系数相加后输出到结果单链表中。

指导教师评语:

签名:

2014年 1 月 5 日

顺序链式一元多项式加法、减法、乘法运算的实现

1.1设计内容及要求 1)设计内容 (1)使用顺序存储结构实现多项式加、减、乘运算。 例如: 10321058)(2456+-+-+=x x x x x x f ,x x x x x x g +--+=23451020107)( 求和结果:102220128)()(2356++-+=+x x x x x g x f (2)使用链式存储结构实现多项式加、减、乘运算, 10305100)(1050100+-+=x x x x f ,x x x x x x g 320405150)(10205090+++-= 求和结果:1031040150100)()(102090100++-++=+x x x x x x g x f 2)设计要求 (1)用C 语言编程实现上述实验内容中的结构定义和算法。 (2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。 (3)用switch 语句设计如下选择式菜单。 ***************数据结构综合性实验**************** *******一、多项式的加法、减法、乘法运算********** ******* 1.多项式创建 ********** ******* 2.多项式相加 ********** ******* 3.多项式相减 ********** ******* 4.多项式相乘 ********** ******* 5.清空多项式 ********** ******* 0.退出系统 ********** ******* 请选择(0—5) ********** ************************************************* *请选择(0-5): 1.2数据结构设计 根据下面给出的存储结构定义: #define MAXSIZE 20 //定义线性表最大容量

小朋友加减法窍门及100以内加减法练习题

班级:姓名: 20+5= 64-32= 87-72= 88-8= 48-29= 62+26= 86-77= 39-36= 75+24= 51+27= 8+91= 24+43= 13+74= 89-53= 74-55= 80+18= 6+67= 1+18= 93-33= 55+5= 100-57= 34+53= 23-17= 76-65= 72+23= 43+42= 75-14= 40-33= 68+15= 10+32= 76+14= 64-4= 62+32= 83-62= 68-11= 78-15= 69-8= 10+15= 50+16= 98-44= 2+94= 76+4= 65+9= 21+5= 100-56= 29+67= 34-16= 36+49= 39-23= 95-83= 45+13= 82+13= 17+43= 13+55= 93-38= 91-37= 59-54= 73+23= 78-57= 4-1= 95-26= 68-44= 84+1= 57+19= 71-17= 3+67= 39+9= 9+5= 54+46= 90-29= 22+38= 52-11= 89-42= 27-14= 33-9= 44-28= 29+30= 58-8= 8+10= 83-31= 12+7= 50-19= 74-68= 58+16=

20+26= 45-43= 21+35= 34-13= 65-23= 48+7= 27+34= 100-28= 2+55= 89-67= 37+47= 44-31= 5+48= 42+2= 59+3= 96-43= 48-7= 16-14= 92-63= 17+1= 30+41= 48-47= 50+18= 67+12= 53+22= 63+10= 65-21= 16+70= 59-38= 23+24= 46-29= 23-6= 8+72= 12+58= 80-6= 9+54= 99-45= 68-6= 51-49= 7+5= 59-5= 32-1= 2+75= 81+18= 92-83= 95-75= 24-3= 39-13= 17+3= 78+4= 81-2= 72+10= 55-16= 74-49= 70+26= 26+50= 69-29= 39+45= 80-61= 83+7= 45-35= 29+24= 72+7= 48+27= 60-29= 21+55= 1+35= 31-20= 71+25= 94-25= 23+41= 20+55= 43+1= 68+6= 57-44= 97-7= 50+23= 83-22= 25+58= 49+25= 46-28= 47-6= 5+91= 66+34=

一元多项式加减乘除运算

中国计量学院实验报告 实验课程:算法与数据结构实验名称:一元二项式班级:学号: 姓名:实验日期: 2013-5-7 一.实验题目: ①创建2个一元多项式 ②实现2个多项式相加 ③实现2个多项式相减 ④实现2个多项式相乘 ⑤实现2个多项式相除 ⑥销毁一元多项式 实验成绩:指导教师:

二.算法说明 ①存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储 空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。 ②加法算法

三.测试结果 四.分析与探讨 实验数据正确,部分代码过于赘余,可以精简。 五.附录:源代码#include<> #include<> #include<> typedef struct Polynomial { float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; 出多项式a和b\n\t2.多项式相加a+b\n\t3.多项式相减a-b\n"); printf("\t4.多项式相除a*b\n\t5.多项式相除a/b\n\t6.销毁多项式\n"); printf("\t7.退出

\n*********************************** ***********\n"); printf("执行:"); scanf("%d",&flag); switch(flag) { case(1): printf("多项式a:");PrintPolyn(pa); printf("多项式b:");PrintPolyn(pb);break; case(2): pc=AddPolyn(pa,pb); printf("多项式a+b:");PrintPolyn(pc); DestroyPolyn(pc);break; case(3): pd=SubtractPolyn(pa,pb); printf("多项式a-b:");PrintPolyn(pd); DestroyPolyn(pd);break; case(4): pf=MultiplyPolyn(pa,pb); printf("多项式a*b:");PrintPolyn(pf); DestroyPolyn(pf);break; case(5): DevicePolyn(pa,pb); break; case(6): DestroyPolyn(pa); DestroyPolyn(pb); printf("成功销毁2个一元二项式\n"); printf("\n接下来要执行的操作:\n1 重新创建2个一元二项式 \n2 退出程序\n"); printf("执行:"); scanf("%d",&i); if(i==1) { // Polyn pa=0,pb=0,pc,pd,pf;//定义各式的头指针,pa与pb在使用前付初值NULL printf("请输入a的项数:"); scanf("%d",&m); pa=CreatePolyn(pa,m);// 建立多项式a printf("请输入b的项

一元稀疏多项式计算器实验(报告+程序)

一元稀疏多项式计数器预习报告 :刘茂学号0062 一、实验要求 (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->expnexpn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。 ②若p->expn=q->expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。 ③若p->expn>q->expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。 四、实验程序 //头文件 #include #include #include //定义多项式的项 typedef struct Polynomial{ float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial;

数据结构中实现一元多项式简单计算

数据结构中实现一元多项式简单计算: 设计一个一元多项式简单的计算器。 基本要求: 一元多项式简单计算器的基本功能为: (1)输入并建立多项式; (2)输出多项式; (3)两个多项式相加,建立并输出和多项式; (4)两个多项式相减,建立并输出差多项式; #include #include #define MAX 20 //多项式最多项数 typedef struct//定义存放多项式的数组类型 { float coef; //系数 int exp; //指数 } PolyArray[MAX]; typedef struct pnode//定义单链表结点类型 { float coef; //系数 int exp; //指数 struct pnode *next; } PolyNode; void DispPoly(PolyNode *L) //输出多项式 { PolyNode *p=L->next; while (p!=NULL) { printf("%gX^%d ",p->coef,p->exp); p=p->next; } printf("\n"); } void CreateListR(PolyNode *&L,PolyArray a,int n) //尾插法建表 { PolyNode *s,*r;int i; L=(PolyNode *)malloc(sizeof(PolyNode)); //创建头结点 L->next=NULL; r=L; //r始终指向终端结点,开始时指向头结点for (i=0;i

一年级数学100以内加减法计算题

15-4=4+37=30-3=24-9=70+3=40+6=25+4=38-8=39+8=19+60=95-40=82-5=78+5=37+9=70+13=84-2=68+7=27+60=68-9=60-7=87+9=38-9= 71+9= 39+10= 99+1= 88-9= 70-5= 39+8= 58+25= 58-10= 30-3= 48+7= 18+7= 20+5= 64-32= 87-72= 50-24= 88-8= 48-29= 62+26= 68-26= 86-77= 75+24= 42+49= 51+27= 8+91= 24+43= 67-56= 13+74= 89-53= 74-55= 86+12= 80+18= 6+67= 1+18= 91-18= 93-33= 55+5= 100-57= 48-16= 34+53= 23-17= 76-65=

72+23=43+42=75-14=39+28=40-33=68+15=10+32=14+13=76+14=64-4=62+32=17+59=83-62=68-11=78-15=28+34=69-8=10+15=50+16=21+37=98-44=76+4= 66+30= 65+9= 21+5= 100-56= 98-96= 29+67= 34-16= 36+49= 38+38= 39-23= 95-83= 45+13= 33+41= 82+13= 17+43= 13+55= 84-53= 93-38= 91-37= 59-54= 73+23= 78-57= 4-1= 2+45= 95-26= 68-44= 84+1= 16+21= 57+19= 71-17= 3+67= 34-18= 39+9= 9+5= 54+46= 5+31= 90-29= 22+38= 52-11= 25+73= 89-42=

数据结构一元多项式的计算

课程设计成果 学院: 计算机工程学院班级: 13计科一班 学生姓名: 学号: 设计地点(单位): 设计题目:一元多项式的计算 完成日期:年月日 成绩(五级记分制): _________________ 教师签名:_________________________ 目录 1 需求分析 ......................................................................... 错误!未定义书签。 2 概要设计 ......................................................................... 错误!未定义书签。 2.1一元多项式的建立 ............................................................... 错误!未定义书签。 2.2显示一元多项式 ................................................................... 错误!未定义书签。 2.3一元多项式减法运算 ........................................................... 错误!未定义书签。 2.4一元多项式加法运算 ........................................................... 错误!未定义书签。 2.5 设计优缺点.......................................................................... 错误!未定义书签。3详细设计 .......................................................................... 错误!未定义书签。 3.1一元多项式的输入输出流程图........................................... 错误!未定义书签。 3.2一元多项式的加法流程图................................................... 错误!未定义书签。 3.3一元多项式的减法流程图.................................................. 错误!未定义书签。 3.4用户操作函数....................................................................... 错误!未定义书签。4编码 .................................................................................. 错误!未定义书签。5调试分析 .......................................................................... 错误!未定义书签。4测试结果及运行效果...................................................... 错误!未定义书签。5系统开发所用到的技术.................................................. 错误!未定义书签。参考文献 ............................................................................. 错误!未定义书签。附录全部代码................................................................... 错误!未定义书签。

600道100以内加减法口算题(A4直接打印)

一年级100以内口算题用时:错误: 58-19= 74-68= 58+16= 12+7= 18+56= 27+70= 53-4= 49+25= 79-32= 24+49= 23-10= 66+34= 20+26= 45-43= 21+35= 5+91= 34-13= 65-23= 48+7= 47-16= 27+34= 100-28= 21+55= 25+58= 89-67= 37+47= 44-31= 49+25= 5+48= 42+2= 59+3= 97-7= 96-43= 48-17= 16-14= 50+23= 92-63= 17+11= 30+41= 68+6= 48-47= 50+18= 67+12= 43+12= 53+22= 63+10= 65-21= 46-28= 16+70= 59-38= 23+24= 83-22= 46-29= 23-6= 8+72= 57-44= 12+58= 80-6= 9+54= 94-25= 99-45= 68-6= 51-49= 20+55= 7+15= 59-5= 32-9= 23+41= 12+75= 81+18= 92-83= 74-49= 95-75= 24-13= 39-13= 55-16= 17+3= 78+4= 81-2= 72+10= 41+39= 89-88= 74-33= 47+35= 79+8= 36+22= 92-66= 93-8= 91-11= 58-12= 61+25= 56-11= 42+20= 92-36= 80-12= 35+20= 65-59= 33+58= 100-44= 14+14= 32+64= 48+13= 39-4= 71-58= 96-38= 57+13= 89-54= 33-17= 18-11= 24+53= 91-9= 48-25=

C语言一元多项式计算

C语言一元多项式计算集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

#include <> #include <> #include <> #define LEN sizeof(node) //结点构造 typedef struct polynode { int coef; //系数 int exp; //指数 struct polynode *next; }node; node * create(void) { node *h,*r,*s; int c,e; h=(node *)malloc(LEN); r=h; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); while(c!=0) { s=(node *)malloc(LEN); s->coef=c; s->exp=e; r->next=s; r=s; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); } r->next=NULL; return(h);

} void polyadd(node *polya, node *polyb) { node *p,*q,*pre,*temp; int sum; p=polya->next; q=polyb->next; pre=polya; while(p!=NULL&&q!=NULL) { if(p->exp>q->exp) { pre->next=p; pre=pre->next; p=p->next; } else if(p->exp==q->exp) { sum=p->coef+q->coef; if(sum!=0) { p->coef=sum; pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); } else { temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; } } else { pre->next=q; pre=pre->next; q=q->next; } } if(p!=NULL) pre->next=p; else pre->next=q; } void print(node * p) {

100以内加减法练习题-附答案

6+42=16+56=90+3=55-27=48+39=3+68=3+66=95-11=14+64=38-10=8+20=76-45=81-46=64+31=20+78=79-28=59+10=65+8=81-73=45+30=75-28=70-54=3+91=97-90=31+57=47+29= 81-34= 56-48= 12+48= 68+24= 80-44= 93-21= 14+47= 37+63= 42+35= 21+50= 68-39= 82-3= 64-14= 1+27= 21+19= 47-10= 66+2= 77-60= 44-25= 20-4= 37+49= 59+37= 93-65= 49-39= 34+62= 13+77= 53-23= 46+27= 24+12= 4+29= 27-10= 73+7= 76-19= 22+6= 70-58= 81+19= 46-8= 80-53= 40-27= 48-40= 68-50= 39+21= 2+19= 82-49= 7+41= 74-41= 69+6= 87-20= 50+21= 26+65= 32+5= 23+4= 29-2= 52+25= 32-16= 78-73= 32+35= 31+21= 97-42= 83-59= 92-43= 34-10= 2+58= 75-33= 61+11= 79-48= 73-49= 49-35= 51+38= 25+8= 98-48= 46+32= 83-33= 33-12=

80-5=42-7=21+68=62-42=2+44=99-16=14+66=68-18=60+17=28+50=72+2=24+63=17+81=95-62=5+26=58+3=6+54=89-80=39+48=31+8=99-67=69-30=14+16=34+11=31+29=59-9= 23+46= 68-3= 98-33= 94-76= 3+48= 32+10= 24+19= 42-11= 2+64= 16+67= 73-39= 87-31= 73-31= 36+6= 12+14= 92-17= 15+43= 71-9= 16+67= 9+61= 29+69= 60+20= 61-32= 23+42= 75+16= 57-7= 19+40= 59-39= 97-5= 53-11= 34+54= 51-31= 40+36= 55+3= 60-42= 46+5= 28+37= 21-7= 12+25= 58+19= 43+42= 37+23= 88-34= 38+49= 37+50= 22+11= 4+41= 75+25= 98-21= 12+39= 94-52= 35+31= 63-34= 69+14= 90-80= 22-12= 89-81= 98-90= 53+3= 87-45= 50-13= 79-42= 69-16= 80-75= 14-5= 73-48= 12+28= 45-35= 42-2= 92-3= 46+49= 7+35= 64-11= 27+57=

一元多项式计算问题课程设计

长沙学院课程设计说明书 题目一元多项式计算问题系(部) 计算机系 专业(班级) 10级软件D班 姓名向栋良 学号2010022D08 指导教师邓旭东 起止日期2011.9.4-2011.9.8

课程设计任务书 课程名称:数据结构与算法 设计题目:一元多项式计算问题 已知技术参数和设计要求: 问题描述: 设计一个稀疏多项式简单计算器 基本要求: (1)输入并分别建立多项式A和B (2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列 (3)完成两个多项式的相加、相减,并将结果输出; 测试数据: (1) A+B A= 3x14-8x8+6x2+2 B=2x10+4x8+-6x2 (2) A-B A=11x14+3x10+2x8+10x6+5 B=2x14+3x8+5x6+7 (3) A+B A=x3+x1B=-x3-x1 (4) A+B A=0 B=x7+x5+x3+x1 (5) A-B A=100x100+50x50+20x20+x B=10x100+10x50+10x20+x 选作内容: (1).多项式在x=1时的运算结果 (2)求多项式A和B的乘积 设计工作量: 40课时 日期节次地点设计方式9月4日(周日)1-4 科1408 讲授内容 9月4日(周日)5-8 科1608 答疑 9月5日(周一)1-4科1408上机调试 9月5日(周一)5-8 科1608 答疑 9月6日(周二)1-4科1408上机调试 9月6日(周二)5-8 科1608 答疑 9月7日(周三)1-4科1408上机调试 9月7日(周三)5-8 科1608 答疑 9月8日(周四)1-4科1608答疑 9月8日(周四)5-8 科1408 答辩

一元多项式计算器

一元多项式计算器 目录 摘要 (1) 1绪论 (1) 2系统分析 (1) 2.1功能需求 (1) 2.2数据需求 (1) 2.3性能需求 (1) 3总体设计 (2) 3.1系统设计方案 (2) 3.2功能模块设计 (2) 4详细设计 (3) 4.1建立多项式 (4) 4.2多项式相加 (4) 4.3多项式相减 (5) 4.4多项式相乘 (5) 4.5计算器主函数 (6) 5调试与测试 (7) 5.1调试 (7) 5.2测试 (8) 6结论 (9) 结束语 (9) 参考文献 (9) 附录1-用户手册 (10) 附录2-源程序 (12)

摘要 随着生活水平的提高,现代科技也日益发达。日常生活中多位计算再所难免,因此设计一个简单计算器可解决许多不必要的麻烦。 开发这样一个程序主要运用了C的结点,链表等方面知识。系统主要实现了多项式的建立,多项式的输入输出,以及多项式加减乘等运算。 报告主要从计算器的程序段,对输入输出数据的要求,计算器的性能,以及总体的设计来介绍此计算器程序的实现过程。 关键词:多项式;链表;结点 1绪论 随着日益发达的科技,计算器已应用于各行各业。设计一个计算器需要运用C中多方面知识,更是以多项式的建立,输入输出,以及结点,链表为主。(扩充) 任务书。。。。。 2系统分析 2.1 功能需求 多项式的建立多项式输入输出多项式加减乘等运算 2.2数据需求 在输入过程中,首先要确定输入的数据,数据不能是字母,只能是数字。不能连续输入数据,必须按要求配以空格输入要计算的数据。 (1) 链节节点数字 (2) 数字 2.3 性能需求 系统必须安全可靠,不会出现无故死机状态,速度不宜过慢。

一元稀疏多项式计算器(数据结构)

院系:计算机科学学院 专业:软件工程 年级: 2013级 课程名称:数据结构 姓名:韦宜(201321092034)指导教师:宋中山 2015年 12 月 15日

题目:设计一个一元稀疏多项式简单计算器 班级:软件工程1301 姓名:韦宜学号:201321092034 完成日期:12月15日 一、需求分析 问题描述:设计一个一元多项式加法器 基本要求: 输入并建立多项式; (2)两个多项式相加; (3)输出多项式:n, c1, e1, c2, e2, …cn , en, 其中,n是多项式项数,ci和ei分别是第i 项的系数和指数,序列按指数降序排列。 (4)计算多项式在x处的值; (5)求多项式的导函数。 软件环境:Windows,UNIX,Linux等不同平台下的Visual C++ 6.0 硬件环境: 512MB内存,80Gb硬盘,Pentium4 CPU,CRT显示器。

二、概要分析 本程序有五个函数: PolyNode *Input()(输入函数); PolyNode *Deri(PolyNode *head)(求导函数); PolyNode * Plus(PolyNode *A,PolyNode *B)(求和函数); void Output(PolyNode*head)(输出函数); int main()(主函数) 本程序可使用带有附加头结点的单链表来实现多项式的链表表示,每个链表结点表示多项式的一项,命名为node,它包括两个数据成员:系数coef和指数exp,他们都是公共数据成员,*next为指针域,用链表来表示多项式。适用于不定的多项式,特别是对于项数再运算过程中动态增长的多项式,不存在存储溢出的问题。其次,对于某些零系数项,在执行加法运算后不再是零系数项,这就需要在结果多项式中增添新的项;对于某些非零系数项,在执行加法运算后可能是零系数项,这就需要在结果多项式中删去这些项,利用链表操作,可以简单的修改结点的指针以完成这种插入和删除运算(不像在顺序方式中那样,可能移动大量数据项)运行效率高。

一元多项式计算(数据结构课程设计)

一元多项式计算(数据结构课程设计)

一、系统设计 1、算法思想 根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应指数相加(减),若其和(差)不为零,则构成“和(差)多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别写到“和(差)多项式”中去。 因为多项式指数最高项以及项数是不确定的,因此采用线性链表的存储结构便于实现一元多项式的运算。为了节省空间,我采用两个链表分别存放多项式a 和多项式b,对于最后计算所得的多项式则利用多项式a进行存储。主要用到了单链表的插入和删除操作。

(1)一元多项式加法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就应该相加;相加的和不为零的话,用头插法建立一个新的节点。P 的指数小于q的指数的话就应该复制q的节点到多项式中。P的指数大于q的指数的话,就应该复制p节点到多项式中。当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生。 (2)一元多项式的减法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就相减;相加的和不为零的话,用头插法建立一个新的节点。p的指数小于q的指数的话,就应该复制q的节点到多项式中。P的指数大于q的指数的话就应该复制p的节点到多项式中,并且建立的节点的系数为原来的相反数;当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生,并且建立的节点的系数为原来的相反数。 2、概要设计 (1)主函数流程图: (注:a代表第一个一元二次方程,b代表第二个一元二次方程)

一元稀疏多项式计算器(数据结构)

【问题描述】 设计一个一元稀疏多项式简单计算器 【基本要求】 一元多项式简单计算器的基本功能是: 1,输入并建立多项式; 2,输出多项式,输出形式为整数序列:n,c1,e1,c2,c2,...,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列; 3,多项式a和b相加,建立多项式a+b; 4,多项式a和b相减,建立多项式a-b. 【测试数据】 1,(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(-3.1x^11+11x^9+2x+7) 【实现提示】 用带表头结点的单链表存储多项式。 #include #include typedef struct node { float coef; int expn; struct node *next; }Lnode, *polynmial; void create(polynmial &L); //输入并建立多项式L void display(polynmial L); //显示,输出多项式L void sort(polynmial &L); //多项式L按指数排序 void reverse(polynmial &L); //逆置 void select(); //用户选择加减操作 void add(polynmial La, polynmial Lb, polynmial &Lc); //多项式La,Lb相加void subtract(polynmial La, polynmial Lb, polynmial &Ld); //多项式La减去Lb,结果给Ld void create(polynmial &L) //输入并建立多项式L { int i, n; static struct node *p; scanf("%d", &n); L = (struct node *)malloc (sizeof(struct node)); L->next = NULL; for(i = 0; i < n; i++) { p = (struct node *)malloc(sizeof(struct node)); scanf("%f %d", &p->coef, &p->expn); p->next = L->next; L->next = p; } }

一元多项式的计算数据结构课程设计

一元多项式的计算—加,减 摘要(题目)一元多项式计算 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加、相减,并将结果输入; 目录 1.引言 2.需求分析 3.概要设计 4.详细设计 5.测试结果 6.调试分析 7.设计体会 8.结束语 一:引言: 通过C语言使用链式存储结构实现一元多项式加法、减法和乘法的运算。按指数

降序排列。 二:需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果 三:概要设计 存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。 1.单连表的抽象数据类型定义: ADT List{ 数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0} 数据关系:R1={| ai-1, ai∈D,i=2,…,n} 基本操作: InitList(&L) //操作结果:构造一个空的线性表 CreatPolyn(&L) //操作结果:构造一个以单连表存储的多项试 DispPolyn(L) //操作结果:显示多项试 Polyn(&pa,&pb) //操作结果:显示两个多项试相加,相减的结果 } ADT List 2.本程序包含模块: typedef struct LNode //定义单链表 { }LNode,*LinkList; void InitList(LinkList &L) //定义一个空表 { } void CreatPolyn(LinkList &L) //用单链表定义一个多项式 { } void DispPolyn(LinkList L) //显示输入的多项式

100以内加减法练习题

姓名班级时间 9 + 22 = 38 + 2 = 35 + 7= 80+20 = 6+27 = 36 + 7 = 30+56 = 40+26 = 23 + 8 = 2 + 28 = 9 + 72 = 23+60 = 4 + 58 = 8 + 15 = 50 + 4 = 8 + 64 = 8 + 83= 6 + 85 = 9 + 80 = 25 + 7 = 29 + 3 = 7 + 38 = 20 + 30 = 20 + 6 = 77 + 8 = 53 + 8 = 76 + 9 = 6 + 53 = 16 + 5 = 19 + 5 = 6 + 55 = 3 7 + 4 = 3 + 4 8 = 35 + 8 = 3 + 4 9 = 59 + 6 = 6 + 55 = 9 + 53 = 28 + 6 = 27 + 6 = 8 + 66 = 3 + 28 = 49 + 4 = 47 + 4 = 56 + 8 = 86 + 5 = 9 + 21 = 8 + 25 = 3 + 69 = 36 + 6 = 47 + 2 = 2 + 57 = 9 + 56 = 29 + 5 = 44 + 8 = 32+9= 58+7= 4+78= 8+47= 79+3=

姓名班级时间 60 – 3 = 80 – 2 = 50 –7 = 60 – 5 = 80 – 3 = 80 – 9 = 30 – 3 = 70 – 3 = 80– 8 = 60 – 2 = 70 – 1 = 60 – 4= 80 – 5 = 70 – 6 = 80 – 4 = 21 – 2 = 75 – 7 = 67– 9 = 57 – 8 = 83 – 5 = 31 – 3 = 32 – 3 = 56 – 8 = 48 – 9 = 84 – 5 = 52 – 3 = 76 – 7 = 53 – 5 = 57– 9 = 41 – 2 = 72 – 7 = 92 – 7 = 81 – 4 = 58 – 9 = 72 – 5 = 43 – 4 = 91 – 4 = 84 – 5 = 75 – 6 = 71 – 5 = 83 – 4 = 72 – 7 = 64 – 6 = 75 – 9 = 64 – 6 = 56 – 7 = 84 – 8 = 81 – 2 = 98 – 9 = 66 – 8 = 76 – 8 = 86 – 7 = 43 – 4 = 66– 7 = 97 – 8 = 68-9= 54-6= 85-8= 46-7= 82-5=

一元稀疏多项式计算器实习报告

实习报告 题目:设计一个一元稀疏多项式计算器 班级: 姓名学号__________完成日期:__ 一、课程题目 一元稀疏多项式计算器 二、需求分析 1、一元稀疏多项式简单计算器的功能是: 1.1 输入并建立多项式; 1.2 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,………cn,en, 其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列; 1.3 求多项式a、b的导函数; 1.4 计算多项式在x处的值; 1.5多项式a和b相加,建立多项式a+b; 1.6 多项式a和b相减,建立多项式a-b。 2、设计思路: 2.1 定义线性表的动态分配顺序存储结构; 2.2 建立多项式存储结构,定义指针*next 2.3利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构 造的一元多项式 3、测试数据: (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. 三、概要设计 1.有序表的抽象数据类型定义为: ADT List{ 数据对象:D={a i| a i∈R,i=1,2,…,n,n≧0}

一元多项式的运算

数据结构课程设计实验报告 专业班级: 学号: 姓名: 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

相关文档
最新文档