1/15实验二一元稀疏多项式的计算一、实验目的帮助学生熟练掌握线性表的基本操作,以及用线性链表表示线性表的存储结构和操作的实现
二、实验内容实现一元稀疏多项式的如下运算:(1)两个一元稀疏多项式相加运算(2)两个一元稀疏多项式相减运算(3)两个一元稀疏多项式相乘运算三、实验仪器微型计算机实验用编程语言:TurboC2
0,BorlandC3
0等以上版本四、实验原理1、一元多项式的逻辑表示一元多项式pn(x)可表示成:pn(x)=p0+p1x+p2x2+,+pnxnn+1个系数可用线性表来表示:(p0,p1,p2,,,pn)每一项的指数i隐含在其系数pi的序号中
一个一元多项式,如果其系数不为0的项相对于其多项式的次数(最大指数)而言要少得多,则称该一元多项式为一元稀疏多项式
对一元稀疏多项式,若采用顺序存储结构,需n+1个元素单元存放系数
当n很大且为零的系数较多时,既浪费存储空间,又浪费运算时间
如:s(x)=1+3x10000+2x20000采用顺序存储分配需20001个元素空间,但只有3个元素有意义
若参与同数量级的加法运算,要运行2000次以上
因此,对一元多项式采用链式存储结构是必然的选择
上例的链表表示形式如图1所示
p2、一元稀疏多项式的链式存储表示结点结构定义如下:typedefstructItem{doublecoef;
200021000301图1:一元稀疏多项式的链表表示示意图2/15intexpn;structItem*next;}Item,*Polyn;3、一元稀疏多项式运算原理设有两个稀疏多项式A和B,其运算原理如下:(1)两个多项式相加(C=A+B)的运算原则:指数相同,系数相加,若不为0,则在结果多项式中构成一新项
指数不同,则两项分别抄入结果多项式中
(2)两个多项式相减(C=A-B)的运算原则:指数相同,系数相减,若不为0,则构成一新项