一元稀疏多项式计算器(数据结构.doc

一元稀疏多项式计算器(数据结构.doc

ID:56204925

大小:48.50 KB

页数:7页

时间:2020-06-21

一元稀疏多项式计算器(数据结构.doc_第1页
一元稀疏多项式计算器(数据结构.doc_第2页
一元稀疏多项式计算器(数据结构.doc_第3页
一元稀疏多项式计算器(数据结构.doc_第4页
一元稀疏多项式计算器(数据结构.doc_第5页
资源描述:

《一元稀疏多项式计算器(数据结构.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【问题描述】 设计一个一元稀疏多项式简单计算器 【基本要求】 一元多项式简单计算器的基本功能是: 1,输入并建立多项式; 2,输出多项式,输出形式为整数序列:n,c1,e1,c2,c2,...,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列; 3,多项式a和b相加,建立多项式a+b; 4,多项式a和b相减,建立多项式a-b. 【测试数据】 1,(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(-3.1x^11+11x^9+2x+7) 【实现提示】 用带表头结点的单链表存储多项式。

2、 #include#includetypedefstructnode{floatcoef;intexpn;structnode*next;}Lnode,*polynmial;voidcreate(polynmial&L);  //输入并建立多项式Lvoiddisplay(polynmialL);  //显示,输出多项式Lvoidsort(polynmial&L);  //多项式L按指数排序voidreverse(polynmial&L);  //逆置voidselect();     //用户选择加减

3、操作voidadd(polynmialLa,polynmialLb,polynmial&Lc);  //多项式La,Lb相加voidsubtract(polynmialLa,polynmialLb,polynmial&Ld);//多项式La减去Lb,结果给Ldvoidcreate(polynmial&L)//输入并建立多项式L{inti,n;staticstructnode*p;scanf("%d",&n);L=(structnode*)malloc(sizeof(structnode));L->next=NULL;for(i=0;i

4、;i++){  p=(structnode*)malloc(sizeof(structnode));  scanf("%f%d",&p->coef,&p->expn);  p->next=L->next;  L->next=p;}}voiddisplay(polynmialL)//显示,输出多项式L{structnode*p,*q;intflag=0;intk=0;q=L->next;while(q){  if(q->coef!=0)   k++;  q=q->next;}printf("%d,",k);p=L->next;if(p->c

5、oef!=0){  printf("%.1f,%d,",p->coef,p->expn);  flag++;}for(p=p->next;p;p=p->next){  if(p->coef!=0)  {   printf("%.1f,%d,",p->coef,p->expn);   flag++;  }}if(flag==0)  printf("%d",flag);else  printf("");}voidsort(polynmial&L)//多项式L按指数排序{polynmialp,q,r,u;p=L->next;L->nex

6、t=NULL;while(p!=NULL){  r=L;  q=L->next;  while((q!=NULL)&&(q->expn<=p->expn))  {   r=q;   q=q->next;  }  u=p->next;  r->next=p;  p->next=q;  p=u;}}voidreverse(polynmial&L)//逆置{polynmialH;staticstructnode*p,*q,*s;H=(structnode*)malloc(sizeof(structnode));H->next=NULL;p=(s

7、tructnode*)malloc(sizeof(structnode));s=L->next;p->coef=s->coef;p->expn=s->expn;p->next=s->next;while(s){  p->coef=s->coef;  p->expn=s->expn;  p->next=s->next;  q=H->next;  H->next=p;  p->next=q;  p=(structnode*)malloc(sizeof(structnode));  s=s->next;}p=H->next;q=L->next;

8、while(p){  q->coef=p->coef;  q->expn=p->expn;  q=q->next;  p=p->next;}}voidselect()//用户选择加减操作{pr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。