数据结构讲解讲义课件.pptVIP

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构讲解讲义课件

2.4 一元多项式的表示及相加 采用链表表示多项式时,每个结点的数据域有两项:系数项,指数项。 则结点定义如下: struct poly{ int coef;系数项 int exp;指数项 struct poly *next; }; 2.4 一元多项式的表示及相加 假设多项式 A17(x)=8+3x+9x10+5x17 与 B10(x)=8x+14x7-9x10 则 C17(x)=A(x)+B(x)=8+11x+14x7+5x17 用单链表表示如下,其头指针分别为Ah、Bh (假设链表是按指数递增的有序链表) 8 0 3 1 9 10 5 17∧ Ah 8 1 14 7 -9 10 ∧ Bh 多项式的单链表存储结构 2.4 一元多项式的表示及相加 其运算规则如下: 假设指针qa和qb分别指向多项式A17(x)和多项式B10(x)中当前进行比较的某个结点,则比较两个结点的数据域的指数项,有三种情况: (1)指针qa所指结点的指数值<指针qb所指结点的指数值时,则将qa指针所指向的结点插入到“和链表”的后面,qa指针后移; (2)指针qa所指结点的指数值>指针qb所指结点的指数值时,则将qb指针所指向的结点插入到“和链表”的后面,qb指针后移; (3)指针qa所指结点的指数值=指针qb所指结点的指数值时,将两个结点中的系数相加,若和不为零,则修改qa所指结点的系数值, 同时释放qb所指结点, qa和qb指针均后移 ;反之,从多项式A17(x)的链表中删除相应结点,并释放指针qa和qb所指结点, qa和qb指针均后移。 2.4 一元多项式的表示及相加 多项式相加的算法实现 struct poly * add_poly(struct poly *Ah, struct poly *Bh) {struct poly *qa, *qb, *s, *r, *Ch; qa=Ah-next; qb=Bh-next; /*qa和qb分别指向两个链表的第一结点*/ Ch=Ah; /*将链表Ah作为相加后的和链表*/ r=Ah; /*r指针始终指向”和链表”的最后一个结点*/ while(qa!=NULLqb!=NULL) /*两链表均非空*/ { if(qa-expqb-exp) /*多项式Ah的指数值小*/ { r-next=qa; r=qa; qa=qa-next;} else if(qa-expqb-exp) /*多项式Bh的指数值小*/ {r-next=qb; r=qb; qb=qb-next;} 2.4 一元多项式的表示及相加 else /* qa-exp==qb-exp 两者指数值相等*/ {x=qa-coef+qb-coef; if(x!=0) { qa-coef=x; r=qa; qa=qa-next; s=qb;qb=qb-next; free(s); } /*相加后系数不为零时*/ else { s=qa; qa=qa-next; free(s); s=qb; qb=qb-next; free(s); } /*相加后系数为零时*/ } } if(qa==NULL) r-next=qb; else r-next=qa; /*链接多项式Ah或Bh中的剩余结点*/ free(Bh); return (Ch); } 本章小结 本章主要介绍了如下内容: 线性表:是n≥0个类型相同的数据元素a1,a2,…,an的有限序列。 线性表的顺序存储结构和运算:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。 线性表的链式存储结构和运算:就是用一组任意的存储单元(可以是不连续的)存储线性表的数据元素。表中每一个数据元素,都由存放数据元素值的数据域和存放直接前驱或直接后继结点的地址(指针)的指针域组成。 循环链表:即将单链表的最后一个

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档