多语言展示
当前在线:425今日阅读:112今日分享:19

实验一 一元多项式加法运算

数据结构:实验一  实现一元多项式加法运算。1.问题描述:利用带头结点的链表结构,开发一个一元稀疏多项式加法运算器。建立一元多项式并按照指数升序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果。2.基本要求:要求程序具备以下操作接口:(1)CreatPolyn(多项式创建函数)(2)PrintPolyn(多项式打印函数)(3)AddPolyn(多项式相加函数)3.程序执行的步骤包括:(1)输入多项式的项数及系数,建立多项式;(2)实现多项式的相加;(3)输出相加结果4.测试数据 (1)(2x+5x^8-3x^11)+(7-5x^8+11x^9) (2)(3x+4x^2-2x^9)+(-6x+5x^2+7x^15)
方法/步骤
1

一、问题描述:利用带头结点的链表结构,开发一个一元稀疏多项式加法运算器。建立一元多项式并按照指数升序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果

2

二、程序#include#include#define LEN sizeof(struct PolyNode)typedef struct PolyNode//{float coef;//int expn;//struct PolyNode *next;//}PolyNode,*polynomial;//int n;//polynomial CreatPolyn()//{polynomial head,p,q;//p=q=(polynomial)malloc(LEN);//scanf('%f,%d',&p->coef,&p->expn);//head=NULL;//while(p->coef!=0){n=n+1;if(n==1){head=p;}else{q->next=p;q=p;p=(polynomial)malloc(LEN);scanf('%f,%d',&p->coef,&p->expn);//}}q->next=NULL;return(head);}void TopPolyn(polynomial L){polynomial a,b;float temp_co;int temp_ex;a=L;for(a;a!=NULL;a=a->next){b=L;for(b;b->next!=NULL;b=b->next){if(b->expn>b->next->expn){temp_co=b->coef;temp_ex=b->expn;b->coef=b->next->coef;b->expn=b->next->expn;b->next->coef=temp_co;b->next->expn=temp_ex;}}}return;}void PrintPolyn(polynomial head){polynomial p;printf('该多项式按升序输出为:');p=head;if(head!=NULL)do{printf('%.2fx^%d ',p->coef,p->expn);p=p->next;}while(p!=NULL);}polynomial AddPolyn(polynomial P,polynomial Q,polynomial R){// polynomial P,Q;P=CreatPolyn();Q=P->next;while(Q!=NULL){if(P->expn==P->next->expn){P->coef=P->next->coef+P->coef;P->next=P->next->next;free(Q);}else{P=P->next;Q=Q->next;}R=P;}return (R);}void main(){polynomial A,B,Ans;printf('请输入多项式A的系数和指数,输入格式为“coefficient,expn”,中间以逗号隔开\n');A=CreatPolyn();// printf('多项式A按升序输出为:');TopPolyn(A);PrintPolyn(A);printf('\n\n请输入多项式B的系数和指数,输入格式为“coefficient,expn”,中间以逗号隔开\n');B=CreatPolyn();// printf('多项式B按升序输出为:');TopPolyn(B);PrintPolyn(B);printf('\n两个多项式相加得出的结果为:');//Ans=NULL;AddPolyn(A,B,Ans);TopPolyn(Ans);PrintPolyn(Ans);}

3

三、测试多项式:1:(2x+5x^8-3x^11)+(7-5x^8+11x^9) 多项式2:(3x+4x^2-2x^9)+(-6x+5x^2+7x^15)

注意事项

部分资料来自网络

推荐信息