一元多项式的相加plinknode *add(plinknode *a,plinknode *b){plinknode *head,*p1,*p2,*p3,*p4;p1=a;head=a;p3=b->next;do{p2=p1->next;if(p2->expn>p3->expn){p1->next=p3;p4=p3->next;p3->next=p2;p3=p4;p1=p1->next;}if(p2->expn==p3->expn){p2->coef=p3->c

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 12:42:07
一元多项式的相加plinknode *add(plinknode *a,plinknode *b){plinknode *head,*p1,*p2,*p3,*p4;p1=a;head=a;p3=b->next;do{p2=p1->next;if(p2->expn>p3->expn){p1->next=p3;p4=p3->next;p3->next=p2;p3=p4;p1=p1->next;}if(p2->expn==p3->expn){p2->coef=p3->c

一元多项式的相加plinknode *add(plinknode *a,plinknode *b){plinknode *head,*p1,*p2,*p3,*p4;p1=a;head=a;p3=b->next;do{p2=p1->next;if(p2->expn>p3->expn){p1->next=p3;p4=p3->next;p3->next=p2;p3=p4;p1=p1->next;}if(p2->expn==p3->expn){p2->coef=p3->c
一元多项式的相加
plinknode *add(plinknode *a,plinknode *b)
{
plinknode *head,*p1,*p2,*p3,*p4;
p1=a;
head=a;
p3=b->next;
do
{
p2=p1->next;
if(p2->expn>p3->expn)
{
p1->next=p3;
p4=p3->next;
p3->next=p2;
p3=p4;
p1=p1->next;
}
if(p2->expn==p3->expn)
{
p2->coef=p3->coef+p2->coef;
if(p2->coef==0)
{
p1->next==p2->next;
free(p2);
p4=p3;
free(p3);
p3=p4->next;
p2=p1->next;
}
else
{
p4=p3;
free(p3);
p3=p4->next;
}
}
if(p2->expnexpn)
{
p1=p1->next;
p2=p2->next;
}
}while(p1->next!=NULL&&p3!=NULL);
if(p2!=NULL)
{
p3->next=p2;
free(p3);
}
return (head);
}
其中plinknode已定义:
typedef struct student
{
int coef;
int expn;
struct student *next;
}
plinknode;
请知道的告诉下谢谢了
这只是程序的一小段,目的是为了实现a,b多项式的相加

一元多项式的相加plinknode *add(plinknode *a,plinknode *b){plinknode *head,*p1,*p2,*p3,*p4;p1=a;head=a;p3=b->next;do{p2=p1->next;if(p2->expn>p3->expn){p1->next=p3;p4=p3->next;p3->next=p2;p3=p4;p1=p1->next;}if(p2->expn==p3->expn){p2->coef=p3->c
#include "stdafx.h"
#include
#include
typedef struct student
{
int coef;
int expn;
struct student *next;
}
plinknode;
plinknode *creat(void)
{
plinknode *head,*p1,*p2,*p3,*p4;
int m,n;
printf("gongyoujiedianshu:");
scanf("%d",&m);
p3=(plinknode *)malloc(sizeof(plinknode));
p3->coef=0;
p3->expn=-1;
p4=p3;
head=p3;
for(n=1;ncoef,&p3->expn);
if(p4->expnexpn)
{
p4->next=p3;
p3->next=NULL;
p4=p4->next;
}
else
{
p1=head;p2=p1->next;
while(p2)
{
if(p2->expn==p3->expn)
{
p2->coef=p2->coef+p3->coef;
free(p3);
if(p2->coef==0)
{
p1->next=p2->next;
free(p2);
if(p2->next==NULL)
{
p4=p1;
}
}
break;
}
if(p2->expn>p3->expn)
{
p1->next=p3;
p3->next=p2;
break;
}
p1=p1->next;
p2=p2->next;
}
}
}
return (head);
}
void print(plinknode *p)
{
plinknode *head;
head=p;
printf("shuchude shi:");
do
{
printf("%d%d\n",head->coef,head->expn);
head=head->next;
}while(head!=NULL);
}
plinknode *add(plinknode *a,plinknode *b)
{
plinknode *head,*p1,*p2,*p3,*p4;
p1=a;
head=a;
p3=b->next;
do
{
p2=p1->next;
if(p2->expn>p3->expn)
{
p1->next=p3;
p4=p3->next;
p3->next=p2;
p3=p4;
p1=p1->next;
}
else if(p2->expn==p3->expn)
{
p2->coef=p3->coef+p2->coef;
if(p2->coef==0)
{
p1->next==p2->next;
free(p2);
p4=p3->next;
free(p3);
p3=p4;
}
else
{
p1=p1->next;
p4=p3->next;
free(p3);
p3=p4;
}
}
else
p1=p1->next;
}while(p1->next!=NULL&&p3!=NULL);
if(p3!=NULL)
{
p2->next=p3;
}
return (head);
}
void main()
{
plinknode *h1,*h2,*h3;
h1=creat();
print(h1);
h2=creat();
print(h2);
h3=add(h1,h2);
print(h3);
}
可以运行,希望对你有帮助

一元多项式的相加plinknode *add(plinknode *a,plinknode *b){plinknode *head,*p1,*p2,*p3,*p4;p1=a;head=a;p3=b->next;do{p2=p1->next;if(p2->expn>p3->expn){p1->next=p3;p4=p3->next;p3->next=p2;p3=p4;p1=p1->next;}if(p2->expn==p3->expn){p2->coef=p3->c 两个一元多项式相加 两个以单链表作存储结构的一元多项式A和B,编写算法将多项式A和B相加,要求利用原表的结点空间和多项式. 数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加运算 怎么编程一元多项式相加(数据结构) 设计一个一元多项式简单的计算器(数据结构C语言版)急要求:一元多项式计算器的基本功能定为 (1) 建立多项式 (2) 输出多项式 (3) 两个多项式相加,建立并输出和多项式 (4) 两个多项式相减 多项式计算要求:1主要功能:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式.2.要求:一元多项式简单计算器的基本 多项式计算要求:1主要功能:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式.2.要求:一元多项式简单计算器的基本 数据结构(C语言) 如何分别用顺序和链式 实现一元多项式的相加? 两个一元多项式相加我想要一个C++的源程序最好有主函数要多点注释错了,不是这样的,我需要的是输入两个一元多项式,两个多项式相加合并,输出一条链. 一元多项式的运算, .一元多项式计算.能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入 数据结构 一元多项式的相乘 的核心思想是?一元多项式相加,我会了.相乘的话,书上说的是多个数据相加.这中间我想知道怎么处理次数从小到大的问题. C++一元多项式相加一元多项式相加对于一个一元多项式,可以表示为:y=a1xb1+a2xb2+.+anxbn可以约定b1,b2,...,bn从大到小排列,且a1,a2,...an均不为0.求任意两个多项式的和.(系数和次数均为整数)输入 两个五次多项式相加后A.十次多项式B.五次多项式C.次数不低于五次的多项式D.次数不高于五次的整式 两个三次多项式相加,结果一定是( )到底是什么啊?A.六次多项式 b.不超过三次的多项式 c.3次多项式 d.无法确定 一元多项式的计算 能够按照指数降序排列建立并输出多项式 能够完成两个多项式的相加及相减要C语言编写的,能运行的,最好有注释,嘻嘻……请高手赐教啊 多项式和多项式相乘所得的积相加请问要求出相加的结果吗