Problem1753--Add Two Polynomials

1753: Add Two Polynomials

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Submit] [Status] [Web Board] [Creator:]

Description

Write a function to add two polynomials. Do not destroy the input. Use a linked list implementation with a dummy head node. Note: The zero polynomial is represented by an empty list with only the dummy head node. Format of functions: Polynomial Add( Polynomial a, Polynomial b ); where Polynomial is defined as the following: typedef struct Node *PtrToNode; struct Node { int Coefficient; int Exponent; PtrToNode Next; }; typedef PtrToNode Polynomial; /* Nodes are sorted in decreasing order of exponents.*/ The function Add is supposed to return a polynomial which is the sum of a and b. Sample program of judge: #include #include typedef struct Node *PtrToNode; struct Node { int Coefficient; int Exponent; PtrToNode Next; }; typedef PtrToNode Polynomial; Polynomial Read(); /* details omitted */ void Print( Polynomial p ); /* details omitted */ Polynomial Add( Polynomial a, Polynomial b ); int main() { Polynomial a, b, s; a = Read(); b = Read(); s = Add(a, b); Print(s); return 0; } /* Your function will be put here */

Input

Polynomial is defined as the following: typedef struct Node *PtrToNode; struct Node { int Coefficient; int Exponent; PtrToNode Next; }; typedef PtrToNode Polynomial; /* Nodes are sorted in decreasing order of exponents.*/

Output

The function Add is supposed to return a polynomial which is the sum of a and b.

Sample Input Copy

4
3 4 -5 2 6 1 -2 0
3
5 20 -7 4 3 1

Sample Output Copy

5 20 -4 4 -5 2 9 1 -2 0

Source/Category

152