#include #include struct term { int coeff; int expo; struct term *next; }; typedef struct term TERM; void insertend(TERM**,int,int); void polyadd(TERM*,TERM*,TERM**); void display(TERM*); void main() { int n,i,c,e; TERM *head1,*head2,*head3; head1=head2=head3=NULL; clrscr(); printf("\nPolynomial 1: \n"); printf("\nEnter the number of terms : "); scanf("%d",&n); for(i=0;iexpo>p2->expo) { c=p1->coeff; e=p1->expo; insertend(p3,c,e); p1=p1->next; } else if(p2->expo>p1->expo) { c=p2->coeff; e=p2->expo; insertend(p3,c,e); p2=p2->next; } else if(p1->coeff+p2->coeff==0) { p1=p1->next; p2=p2->next; } else { c=p1->coeff+p2->coeff; e=p1->expo; insertend(p3,c,e); p1=p1->next; p2=p2->next; } } while(p1!=NULL) { insertend(p3,p1->coeff,p1->expo); p1=p1->next; } while(p2!=NULL) { insertend(p3,p2->coeff,p2->expo); p2=p2->next; } } void insertend(TERM **p,int c,int e) { TERM *n,*cur; n=(TERM*)malloc(sizeof(TERM)); n->coeff=c; n->expo=e; n->next=NULL; cur=*p; if(*p==NULL) *p=n; else { while(cur->next!=NULL) cur=cur->next; cur->next=n; } } void display(TERM *p) { TERM *cur; cur=p; printf("\nCoeff\t\tExpo\n"); while(cur!=NULL) { printf("\n%d\t\t%d",cur->coeff,cur->expo); cur=cur->next; } }