您的位置:首页 > 理论基础 > 数据结构算法

一元多项式的表示和相加

2017-11-06 13:46 190 查看

一元多项式的表示和相加

time:2017-09-13 10:48

what:针对数据结构的一元多项式的表示和相加,进行图解的详细分析和描述

where:一元多项式的合并

why:图解能对算法有更清晰的了解

who:自己

when:在学习数据结构的一元多项式的表示和相加时

$1.一元多项式的表示

一元多项式

p(x)=p0+p1x+p2x2+…+pnxn

由n+1个系数唯一确定。则在计算机中可用线性表(p0,p1,p2,...,pn )表示。既然是线性表,就可以用顺序表和链表来实现。两种不同实现方式的元素类型定义如下:

(1)顺序存储表示的类型

typedef sturct
{
float coef; /*系数部分*/
int expn; /*指数部分*/
}ElemType;


(2)链式存储表示的类型

typedef sturct ploy
{
float coef; /*系数部分*/
int expn; /*指数部分*/
sturct ploy *next;
}Ploy;


$2.一元多项式的相加

不失一般性,设有两个一元多项式:

P(x)=p0+p1x+p2x2+…+pnxn

Q(x)=q0+q1x+q2x2+…+qmxm(m<n)

R(x)=P(x)+Q(x)

R(x)由线性表

R((p0+q0),(p1+q1),(p2+q2),…,(pm+qm),…,pn)

唯一表示。

$3.链式存储表示的相加

当采用链式存储表示时,根据结点类型定义,凡是系数为0的项不在链表中出现,从而可以大大减少链表的长度。

一元多项式相加的实质是:

- 指数不同: 是链表的合并。

- 指数相同: 系数相加,和为0,去掉结点,和不为0,修改结点的系数域。

$3.1算法之一:

就在原来两个多项式链表的基础上进行相加,相加后原来两个多项式链表就不在存在。当然再要对原来两个多项式进行其它操作就不允许了。

$3.2算法之二:

对两个多项式链表进行相加,生成一个新的相加后的结果多项式链表,原来两个多项式链表依然存在,不发生任何改变,如果要再对原来两个多项式进行其它操作也不影响。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构