| 13 | |
| 14 | typedef struct polynomial{ |
| 15 | term* addTerm(term *first, int p, int c){ //adding term to the polynomial |
| 16 | if(p<0){ |
| 17 | cout << "Undefined power" << endl; |
| 18 | return first; |
| 19 | } |
| 20 | if(first == NULL){ |
| 21 | term *tmp = new term; |
| 22 | tmp->pow = p; |
| 23 | tmp->coeff = c; |
| 24 | tmp->next = first; |
| 25 | first = tmp; |
| 26 | return first; |
| 27 | } |
| 28 | else{ |
| 29 | int pos = 1; |
| 30 | term *q = first; |
| 31 | term *nxt = NULL; |
| 32 | while(q->next!=NULL){ |
| 33 | nxt = q->next; |
| 34 | if(p > q->pow) |
| 35 | break; |
| 36 | else if(p < q->pow && p > nxt->pow){ |
| 37 | pos++; |
| 38 | break; |
| 39 | } |
| 40 | else{ |
| 41 | q = q->next; |
| 42 | pos++; |
| 43 | } |
| 44 | |
| 45 | } |
| 46 | if(p < q->pow && nxt == NULL){ |
| 47 | pos++; |
| 48 | } |
| 49 | if(pos==1){ |
| 50 | term* tmp = new term; |
| 51 | tmp->pow = p; |
| 52 | tmp->coeff = c; |
| 53 | tmp->next = q; |
| 54 | q = tmp; |
| 55 | return q; |
| 56 | } |
| 57 | else{ |
| 58 | term *tmp = new term; |
| 59 | tmp->pow = p; |
| 60 | tmp->coeff = c; |
| 61 | tmp->next = q->next; |
| 62 | q->next = tmp; |
| 63 | return first; |
| 64 | } |
| 65 | } |
| 66 | return first; |
| 67 | } |
| 68 | |
| 69 | term* add(term* one, term* two, term* res){ //combining two polynomials |
| 70 | while(one!=NULL && two!=NULL){ |