Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- struct Node
- {
- int data;
- int pow;
- struct Node *next;
- };
- typedef struct Node node;
- void create_node(int a, int b, node **temp)
- {
- struct Node *r, *x;
- x = *temp;
- if(x == NULL)
- {
- r =new node();
- r->data = a;
- r->pow = b;
- *temp = r;
- r->next = new node();
- r = r->next;
- r->next = NULL;
- }
- else
- {
- r->data = a;
- r->pow = b;
- r->next = new node();
- r = r->next;
- r->next = NULL;
- }
- }
- void polyadd(node *poly1, node *poly2,node *poly)
- {
- while(poly1->next && poly2->next)
- {
- if(poly1->pow > poly2->pow)
- {
- poly->pow = poly1->pow;
- poly->data = poly1->data;
- poly1 = poly1->next;
- }
- else if(poly1->pow < poly2->pow)
- {
- poly->pow = poly2->pow;
- poly->data = poly2->data;
- poly2 = poly2->next;
- }
- else
- {
- poly->pow = poly1->pow;
- poly->data = poly1->data+poly2->data;
- poly1 = poly1->next;
- poly2 = poly2->next;
- }
- poly->next = new node();
- poly = poly->next;
- poly->next = NULL;
- }
- while(poly1->next || poly2->next)
- {
- if(poly1->next)
- {
- poly->pow = poly1->pow;
- poly->data = poly1->data;
- poly1 = poly1->next;
- }
- if(poly2->next)
- {
- poly->pow = poly2->pow;
- poly->data = poly2->data;
- poly2 = poly2->next;
- }
- poly->next = new node();
- poly = poly->next;
- poly->next = NULL;
- }
- }
- void show(struct Node *node)
- {
- while(node->next != NULL)
- {
- if(node->pow==1)
- {
- printf("%dx", node->data);
- }
- else if(node->pow==0)
- {
- printf("%d", node->data);
- }
- else
- {
- printf("%dx^%d", node->data, node->pow);
- }
- node = node->next;
- if(node->next != NULL)
- printf(" + ");
- }
- }
- int main()
- {
- struct Node *poly1 = NULL, *poly2 = NULL, *poly = NULL;
- create_node(5,3,&poly1);
- create_node(2,2,&poly1);
- create_node(3,1,&poly1);
- create_node(4,0,&poly1);
- create_node(4,2,&poly2);
- create_node(3,0,&poly2);
- printf("1st Number: ");
- show(poly1);
- printf("\n2nd Number: ");
- show(poly2);
- poly = new node();
- polyadd(poly1, poly2, poly);
- printf("\nAdded NUMBER: ");
- show(poly);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement