线性表的应用---一元多项式的表示与相加
来源:互联网 发布:淘宝买家信用值 编辑:程序博客网 时间:2024/04/28 12:16
用尾插法建立一元多项式的链表
void polycreate(Polylist head){Polynode *rear, *s;int c,e;rear=head; /* rear 始终指向单链表的尾,便于尾插法建表*/scanf("%d,%d",&c,&e); /*键入多项式的系数和指数项*/while(c!=0) /*若c=0,则代表多项式的输入结束*/{s=(Polynode*)malloc(sizeof(Polynode));/*申请新的结点*/s->coef=c;s->exp=e;rear->next=s;/*在当前表尾做插入*/rear=s;scanf("%d,%d",&c,&e); }rear->next=NULL;/*将表的最后一个结点的next置NULL,以示表结束*/}
多项式相加
void polyadd(Polylist polya, Polylist polyb)/*此函数用于将两个多项式相加,然后将和多项式存放在多项式polya中,并将多项式ployb删除*/{Polynode *p, *q, *pre, *temp;int sum;p=polya->next; /*令 p和q分别指向polya和polyb多项式链表中的第一个结点*/q=polyb->next; pre=polya; /* r指向和多项式的尾结点*/while (p!=NULL && q!=NULL) /*当两个多项式均未扫描结束时*/{ if (p->exp < q->exp)/*如果p指向的多项式项的指数小于q的指数,将p结点加入到和多项式中*/{ pre->next=p; pre=p; p=p->next;}elseif ( p->exp == q->exp) /*若指数相等,则相应的系数相加*/{ sum=p->coef + q->coef;if (sum != 0){ p->coef=sum;pre->next=p; pre=p;p=p->next;temp=q; q=q->next; free(temp);}else{ temp=p;p=p->next;free(temp); /*若系数和为零,则删除结点p与q,并将指针指向下一个结点*/temp=q; q=q->next;free(temp);}}else{ pre->next=q;pre=q; /*将q结点加入到和多项式中*/q = q->next; }}if(p!=NULL) /*多项式A中还有剩余,则将剩余的结点加入到和多项式中*/pre->next=p;else /*否则,将B中的结点加入到和多项式中*/pre->next=q;}
1 0
- 线性表的应用---一元多项式的表示与相加
- 线性表实现一元多项式的表示及相加
- 一元多项式的表示及相加 【链表的应用】
- 数据结构学习笔记 --- 线性表 (一元多项式的表示及相加)
- Polynomial 一元多项式的表示及相加 (线性链表实现 严蔚敏版)
- 数据结构学习笔记 --- 线性表 (一元多项式的表示及相加)
- 一元多项式的表示及相加
- 2.4 一元多项式的表示及相加
- 2.4一元多项式的表示及相加
- 一元多项式的表示及相加
- 一元多项式的表示及相加
- 数据结构 一元多项式的表示及相加
- 一元多项式的表示及相加 数据结构
- 链表做的一元多项式表示及相加
- 一元多项式的相加及表示
- 一元多项式的表示和相加
- 2.4一元多项式的表示及相加
- 一元多项式的表示和相加
- Spring MVC拦截器配置及其原理分析
- 腾讯实习生招聘经历
- StringBuffer类的常用方法集合
- mysql基础语法大全
- Go语言 类型转换和断言
- 线性表的应用---一元多项式的表示与相加
- MySQL语法大全之用户权限
- flute学习 2014.4.20
- 利用java反射对数据库进行增删改查
- 从头学Android之ContentProvider
- 完全用Linux工作
- mysql触发器的作用及语法
- IAR EWARM 破解方法
- shell解决服务器高可用