数据结构
课程设计
一元多项式求值
用链式实现一元多项式(poly)的加法运算 系数(float p),指数(int e),指针(*next) 算法思路:同时扫描多项式p1、p2的各项分量,比较他们的指数值,如果相同,则对此指数相对应的系数进行合并求和,将系数和写入p1当前的分量当中,继续扫描p1、p2的下一个分量;否则p1和p2的当前分量的指数值不等,分下面两种情况分析: (1)如果p1当前分量小如p2当前分量的值,则继续扫描p1的下一项。
(2)如果p1当前分量大如p2当前分量的值,则p2插入p1当前分量的前面。 #include \#include \#include \typedef struct node{ float p;//系数 unsigned int e;//指数 struct node *next;//后继地址 }poly,*Poly;
Poly creat()//建一个空链表
{Poly p;
p=(Poly)malloc(sizeof(poly)); p->next=NULL; return p; }
Poly created(Poly P,float a[],int b[],int n)//给空链表赋值 {Poly p1,p2; int i; p1=P;
for(i=0;i {p2=(Poly)malloc(sizeof(poly)); p2->p=a[i]; p2->e=b[i]; p1->next=p2; p1=p2; } return P; } void add(Poly p1,Poly p2) {Poly p,c1,c2; p=p1; c1=p1->next;