数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加运算精品文档收集于网络,如有侵权请联系管理员删除#include#include#includetypedefintElemType;/*单项链表的声明*/typedefstructPolynNode{intcoef;//系数intexpn;//指数structPolynNode*next;}PolynNode,*PolynList;/*正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表*//*指数系数一对一对输入*/voidCreatePolyn(PolynList&L,intn){inti;精品文档收集于网络,如有侵权请联系管理员删除PolynListp,q;L=(PolynList)malloc(sizeof(PolynNode));//生成头结点L->next=NULL;q=L;printf("成对输入%d个数据\n",n);for(i=1;icoef,&p->expn);//指数和系数成对输入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){printf("+");//“+”号的输出,最后一项后面没有“+”}p=p->next;}printf("\n");}/*ListTraverse()调用的函数(类型要一致)*/voidvisit(ElemTypec,ElemTypee){if(c