数据结构一元多项式的加减乘.doc_第1页
数据结构一元多项式的加减乘.doc_第2页
数据结构一元多项式的加减乘.doc_第3页
数据结构一元多项式的加减乘.doc_第4页
数据结构一元多项式的加减乘.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

#ifndef _POLYNOMIAL_H#define _POLYNOMIAL_H#includeusing namespace std;#include/#define ElemType chartypedef struct / 项的表示,多项式的项作为LinkList的数据元素 float coef;/ 系数 int expn;/ 指数 term, ElemType;typedef struct LNode / 结点类型 ElemType data;struct LNode *next;LNode,*Link,*Position;typedef struct LinkList / 链表类型 Link head,tail;/ 分别指向线性链表中的头结点和最后一个结点 int len;/ 指示当前线性链表中数据元素的个数 LinkList;typedef LinkList polynomial;void InitList(LinkList &P);void CreatPolyn(polynomial &P,int m);void DestroyPolyn(polynomial &P);void CreatePolyn(polynomial &P,int m);/建立表示一元多项式的有序链表Pvoid DestroyPolyn(polynomial &P);/销毁一元多项式Pvoid PrintPolyn(polynomial P);/打印int PolyLength(polynomial P);/项数void AddPolyn(polynomial &Pa,polynomial &Pb);/相加运算void SubtractPolyn(polynomial &Pa,polynomial &Pb);/相减运算void MultiplyPolyn(polynomial &P,polynomial &Pa,polynomial &Pb);/相乘运算int cmp(term a,term b);/依a的指数值)b的指数值,分别返回-1,0,+1int LocateElemP(LinkList L,ElemType e,Position *q,int(*compare)(ElemType,ElemType);int MakeNode(Link *p,ElemType e);int InsFirst(LinkList *L,Link h,Link s);#endif#includePolynomial.hvoid InitList(polynomial &P)P.head = P.tail = (LNode *)malloc(sizeof(LNode);assert(P.head != NULL);P.head-next = NULL; P.len = 0;void CreatePolyn(polynomial &P,int m)/建立表示一元多项式的有序链表PPosition q,s;term e;int i;InitList(P);cout请依次输入m个系数,指数(一递增的方式输入) endl;for (i = 1;i e.coefe.expn;q = P.tail;s = (LNode *)malloc(sizeof(LNode);assert(s != NULL);s-data.coef = e.coef;s-data.expn = e.expn;P.tail-next = s;s-next = NULL;P.tail = s;P.len+;void DestroyPolyn(polynomial &P)/销毁一元多项式Pfree(P.head);/再释放头尾结点P.len=0;void PrintPolyn(polynomial P)/打印if (P.len = 0)cout多项式不存在!next;for (int i = 1;i P.len;i+)coutdata.coefxdata.expnnext;coutdata.coefxdata.expnnext; LNode *pb = Pb.head-next;while(pa != NULL & pb != NULL)if(pa-data.expn data.expn)pa = pa-next;else if(pa-data.expn = pb-data.expn )pa-data.coef = pa-data.coef + pb-data.coef;pa=pa-next;pb=pb-next;else if(pa-data.expn) (pb-data.expn)LNode *q = Pa.head;while(q-next!=pa)q=q-next;q-next = pb;pb = pb-next;Pa.len+;if(pa = NULL)LNode *q = Pa.head;while(q-next!=pa)q=q-next;while (pb != NULL)q-next = pb;q = pb;pb = pb-next;Pa.len+;Pa.tail = Pb.tail;void SubtractPolyn(polynomial &Pa,polynomial &Pb)/相减运算LNode *pa = Pa.head-next;LNode *pb = Pb.head-next;while(pa !=NULL & pb != NULL)if(pa-data.expn data.expn)pa = pa-next;else if(pa-data.expn = pb-data.expn )pa-data.coef = pa-data.coef - pb-data.coef;pa=pa-next;pb=pb-next;else if(pa-data.expn) (pb-data.expn)LNode *q = Pa.head;while(q-next!=pa)q=q-next;q-next = pb;pb-data.coef = -pb-data.coef;pb = pb-next;Pa.len+;if(pa = NULL)LNode *q = Pa.head;while(q-next!=pa)q=q-next;while (pb != NULL)q-next = pb;pb-data.coef = -pb-data.coef;q = pb;pb = pb-next;Pa.len+;Pa.tail = Pb.tail;void MultiplyPolyn(polynomial &Pd,polynomial &Pa,polynomial &Pb)/相乘运算polynomial Pc; InitList(Pd);LNode *pa = Pa.head-next;while(pa != NULL)for (int i= 1; i next;for (int j = 1; j data.coef = pa-data.coef * pb-data.coef;s-data.expn = pa-data.expn + pb-data.expn;pc-next = s;s-next = NULL;pc = s;pb = pb-next;Pc.len+;Pc.tail = pb;AddPolyn(Pd,Pc);free(Pc.head);free(Pc.tail);pa = pa-next;#include Polynomial.hvoid main()polynomial mypoly;polynomial mypoly1;polynomial mypoly2;InitList(mypoly);InitList(mypoly1);InitList(mypoly2);int m;int select = 1;while (select)cout*endl;cout*1.建立一元多项式 2.销毁一元多项式*endl;cout*3.打印一元多项式 4.一元多项式相加*endl;cout*5.一元多项式相减 6.一元多项式相乘*endl;cout*endl;coutselect;switch (select)case 1:cout;cinm;CreatePolyn(mypoly,m);break;case 2:DestroyPolyn(mypoly);break;case 3:PrintPolyn(mypoly);break;case 4:cout;cinm;CreatePolyn(mypoly1,m);cout;cinm;CreatePolyn(mypoly2,m);AddPolyn(mypoly1,mypoly2);PrintPolyn(mypoly1);break;case 5:cout;cinm;CreatePolyn(mypoly1,m);cout;cinm;CreatePolyn(mypoly2,m);SubtractPo

温馨提示

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

评论

0/150

提交评论