当前位置:文档之家› 一元多项式加减乘除运算

一元多项式加减乘除运算

中国计量学院实验报告
实验课程:算法与数据结构实验名称:一元二项式班级:学号:
姓名:实验日期: 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的项
数:");
scanf("%d",&n);
pb=CreatePolyn(pb,n);//
建立多项式b
break;}
if(i==2)
return 0; case(7): return 0;
} } } }。

相关主题