《数据结构》-一元多项式的表示及相加_第1页
《数据结构》-一元多项式的表示及相加_第2页
《数据结构》-一元多项式的表示及相加_第3页
《数据结构》-一元多项式的表示及相加_第4页
《数据结构》-一元多项式的表示及相加_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.1 线性表的类型定义,2.3 线性表的链式表示和实现,2.4 一元多项式的表示及相加,2.2 线性表的顺序表示和实现,第二章 线性表,2.4 一元多项式的表示及相加,若对P,Q,R采用顺序存储结构,则问题很简单:,在数学上,一个多项式可表示为: 。用线性表可表示为 。 假设 是一元m次多项式: (mn)。 则两个多项式相加的结果: 。用线性表可表示为: 。,p0 q0 p0 + q0 p1 q1 p1 + q1, + pm qm pm + qm pn pn,但是对于形如,S(x) = 1 + 3x10000 2x20000,的多项式,上述表示方法是否合适?,然而,在通常的应用中,多项式的次数可能很高且变化很大,使得顺序存储结构的最大长度很难确定。例如:。就要用一长度为20001的线性表来表示,而表中仅有3个非零元素,这种对内存空间的浪费是应该避免的。,为此我们可以用单链表来实现。在单链表中每个结点有两个数据项(系数项和指数项)。,例如: 和 相加。A -1 7 0 3 1 9 8 5 17 B -1 8 1 22 7 -9 8 C -1 7 0 11 1 5 17 22 7 图2.14 多项式相加链式存储结构示例,一元多项式的实现:,typedef struct / 项的表示 float coef; / 系数 int expn; / 指数 term, ElemType;,typedef OrderedLinkList polynomial; / 用带表头结点的有序链表表示多项式,结点的数据元素类型定义为:,void AddPolyn (Polynomial ,算法2.15如下:,多项式相加,else /删除多项式PA中当前结点DelFirst (ha, qa);FreeNode (qa);DelFirst (hb, qb);FreeNode (qb);qb = NextPos (Pb, hb);qa = NextPos (Pa, ha);break;case 1:/多项式PB中当前结点的指数值小DelFirst (hb, qb);InsFirst (ha, qb);qb = NextPos (Pb, hb);ha = NextPos (Pa, ha);break; /switch /whileif (!ListEmpty (pb) Append (Pa, qb);/链接Pb中剩余结点FreeNode (hb);/释放Pb的头结点 /AddPolyn,两个一元多项式相乘的算法,可以利用两个一元多项式相加的算法来实现,因为乘法运算可以分解为一系列的加法运算。假设A(x)和B(x)为多项式:则:M(x) = A(x) B(x) = A(x) = 其中每一项都是一个一元多项式。,本章小结,1.了解线性表的逻辑结构特性是数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。用前者表示的线性表简称为顺序表,用后者表示的线性表简称为链表。,2.熟练掌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论