数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加运算.pdf

数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加运算.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

#includestdio.h

#includestdlib.h

#includemalloc.h

typedefintElemType;

/*单项链表的声明*/

typedefstructPolynNode{

intcoef;//系数

intexpn;//指数

structPolynNode*next;

}PolynNode,*PolynList;

/*正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表*/

/*指数系数一对一对输入*/

voidCreatePolyn(PolynListL,intn)

{

inti;

PolynListp,q;

L=(PolynList)malloc(sizeof(PolynNode));//生成头结点

L-next=NULL;

q=L;

成对输入%d个数据

for(i=1;i=n;i++)

{

1文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

p=(PolynList)malloc(sizeof(PolynNode));

指数和系数成对输入

q-next=p;

q=q-next;

}

p-next=NULL;

}

//初始条件:单链表L已存在

//操作结果:依次对L的每个数据元素调用函数vi()。一旦vi()失败,则操作失败

voidPolynTraverse(PolynListL,void(*vi)(ElemType,ElemType))

{

PolynListp=L-next;

while(p)

{

vi(p-coef,p-expn);

if(p-next)

{

//“+”号的输出,最后一项后面没有“+”

}

p=p-next;

}

2文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

}

/*ListTraverse()调用的函数(类型要一致)*/

voidvisit(ElemTypec,ElemTypee)

{

if(c!=0)

{

格式化输出多项式每一项

}

}

/*多项式相加,原理:归并*/

/*参数:两个已经存在的多项式*/

/*返回值:归并后新的多项式的头结点*/

PolynListMergeList(PolynListLa,PolynListLb)

{

PolynListpa,pb,pc,Lc;

pa=La-next;

pb=Lb-next;

Lc=pc=La;//用La的头结点作为Lc的头结点

while(papb)

{

if(pa-expnpb-expn)

{

3文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

pc-next=pa;//如果指数不相等,pc指针连上指数小的结

点,

pc=pa;

pa=pa-next;//指向该结点的指针后移

}

elseif(pa-ex

文档评论(0)

百分卷 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档